split and assign values in a file.
Please support our Perl advertiser: Programming Forums
Thread Solved
![]() |
•
•
Posts: 3
Reputation:
Solved Threads: 0
Iam new to perl. This is my problem.
I have calculated the distance using the formula
my $distance = sqrt(($x2 - $x1)**2 + ($y2 - $y1)**2 + ($z2 - $z1)**2);
and the value of $distance looks like this:
3.72851967944384
5.83210433720111
7.12922562414741
10.2322964186931
11.2073015931579
11.882666956538
14.4465118281196
16.0581479006765
17.2278339903773
Now I have to open a file that looks like this:
1 3.90
2 4.90
3 4.91
4 5.12
.
.
.
71 50.23
72 51.00
.
.
180 78.00
I have opened this file
open(DIST,"path/DBins.pl") or die "$!";
while(my $lines = <DIST>){
chomp($lines);
my @point = (split (/\s+/, $lines))[1,2];
I have to compare the value of $distance (shown above)with the above file with the second column and print out the corresponding first column value. the threshold value is 71(1st column). Any value of $distance above 50.00 should stop there and retrieve the first column values of 50.23. The first column is the index value and second column(floating point values) is the energy values.
Till now I have split the line in the file, but i dnt know how to assign values to that array to the two columns . I dont know how to compare the value of $distance to the second column and get the corresponding first column values as output.
Please help.
I have calculated the distance using the formula
my $distance = sqrt(($x2 - $x1)**2 + ($y2 - $y1)**2 + ($z2 - $z1)**2);
and the value of $distance looks like this:
3.72851967944384
5.83210433720111
7.12922562414741
10.2322964186931
11.2073015931579
11.882666956538
14.4465118281196
16.0581479006765
17.2278339903773
Now I have to open a file that looks like this:
1 3.90
2 4.90
3 4.91
4 5.12
.
.
.
71 50.23
72 51.00
.
.
180 78.00
I have opened this file
open(DIST,"path/DBins.pl") or die "$!";
while(my $lines = <DIST>){
chomp($lines);
my @point = (split (/\s+/, $lines))[1,2];
I have to compare the value of $distance (shown above)with the above file with the second column and print out the corresponding first column value. the threshold value is 71(1st column). Any value of $distance above 50.00 should stop there and retrieve the first column values of 50.23. The first column is the index value and second column(floating point values) is the energy values.
Till now I have split the line in the file, but i dnt know how to assign values to that array to the two columns . I dont know how to compare the value of $distance to the second column and get the corresponding first column values as output.
Please help.
Is this you as well?
http://www.daniweb.com/forums/thread148485.html
http://www.daniweb.com/forums/thread148485.html
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
UK Voter? Please send a message to Incapability Brown and the rest of Zanu-Labour
Up to 8Mb PlusNet broadband from only £5.99 a month!
UK Voter? Please send a message to Incapability Brown and the rest of Zanu-Labour
Up to 8Mb PlusNet broadband from only £5.99 a month!
•
•
Posts: 3
Reputation:
Solved Threads: 0
![]() |
Similar Threads
Other Threads in the Perl Forum
- Variable pointers or References for .conf parser? (C++)
- Suggestions for perl resources? Dealing with csv data. (Perl)
Other Threads in the Perl Forum
- Previous Thread: Handle minimize button in Tk
- Next Thread: How to get html button click event in perl?
•
•
•
•
Views: 1130 | Replies: 5 | Currently Viewing: 1 (0 members and 1 guests)






Linear Mode