Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: array print outside loop

by kyle (Abbot)
on Apr 20, 2010 at 12:05 UTC ( #835761=note: print w/ replies, xml ) Need Help??


in reply to array print outside loop

I might write your code this way (but note I haven't tested it).

use strict; use warnings; my $param_file = 'Params.txt'; open my $param_fh, '<', $param_file or die "Can't read '$param_file': $!"; my (@params, @charam); while (<$param_fh>) { my ($name,$value) = split /:/; push @params, $name; push @charam, $value; } my @actual = @charam; close $param_fh or die "Close failed: $!";

Some differences from your version:

  • I Use strict and warnings (as Ratazong has already suggested).
  • I use three arg open for a little more safety.
  • When open fails, my error message includes $! so I know why, and it also says everything I'd want to know about the open that failed (what file I was opening and what mode I was trying to use—read).
  • The first argument to split is a regular expression.
  • Your $i and $j always have the same value, and you don't really need them since you're just appending to arrays. So I used push instead. That also means the first defined element of my array is 0 instead of 1.

The data you're reading would probably be best represented as a hash rather than a pair of arrays, but I say that without really knowing what you're going to do with it. If I were sticking all this in a hash, the code would look like this:

# same preamble my %value_of; while (<$param_fh>) { my ($name,$value) = split /:/; $value_of{$name} = $value; } # etc

Then you could get the stuff you have in @params and @charam using keys and values, but they'd be out of order.

If you're not familiar with hashes, I'd suggest you look into it. They are very useful.

I hope this helps.


Comment on Re: array print outside loop
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://835761]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (4)
As of 2015-07-04 23:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (60 votes), past polls