in reply to Re^4: trouble assigning values to hash
in thread trouble assigning values to hash

Thanks! I changed the line to this:

if ( $line =~ /\d{4,}/ { $date = $1; }


But the part that I think is causing the error is this one:
else { $seqs{$sequence} = "$date;$orig;$desg;$body"; }


Here is what the error looks like:
[bluethundr@cc126-200:~/perl] $:./3par-test5.pl Use of uninitialized value in pattern match (m//) at ./3par-test5.pl l +ine 29, <MYFILE> line 1. Use of uninitialized value in concatenation (.) or string at ./3par-te +st5.pl line 30, <MYFILE> line 1. Use of uninitialized value in concatenation (.) or string at ./3par-te +st5.pl line 30, <MYFILE> line 1. Use of uninitialized value in concatenation (.) or string at ./3par-te +st5.pl line 30, <MYFILE> line 1. Use of uninitialized value in concatenation (.) or string at ./3par-te +st5.pl line 30, <MYFILE> line 1.




For greater context, here is the loop in which this statement sits:
while (<MYFILE>) { next if (m/^$/); last if (m/^Press.*/); my ( $line, %seqs, $sequence, $date, $orig, $desg, $body ); if ( $line =~ /\d\d:\d\d:\d\d/g { $date = $1; } else { $seqs{$sequence} = "$date;$orig;$desg;$body"; } }
Thanks again!

Replies are listed 'Best First'.
Re^6: trouble assigning values to hash
by AnomalousMonk (Archbishop) on Aug 27, 2010 at 22:40 UTC
    ... the part that I think is causing the error ...

    Yes, indeed! It's just as ikegami first said 'way back in Re: trouble assigning values to hash! The trouble starts with the statement
        my ( $line, %seqs, $sequence, $date, $orig, $desg, $body );
    in which a bunch of variables are defined and given no values. The 'Use of uninitialized value...' fireworks happen in the very next statement, which attempts to use all the uninitialized values (well, the scalars at any rate).

    Have a nice weekend. We look forward to your first post on this topic Monday morning. :)
    BTW: Your posted regexes still don't make any sense, but that's a discussion for Monday.