[EMAIL PROTECTED] wrote:
> $_ = shift @data until /Amount/;       # start of transactions
> 
>> and get this warning:
> 
> Use of uninitialized value in pattern match (m//) at CMS2AP.pl line 138.
> 
> One way to avoid the warning is to check for that first uninit'ed $_
Thank you Andy
I had been thinking my statement above was equiv to

do {$_ = shift @data;} until ($_ =~ /Amount);

when it is really equiv to

until ($_ =~ /Amount/) {$_ = shift @data;}

and couldn't see the wood for the trees so to speak.

John


> #!perl -w
> use strict;
> my @data = qw(hi ho hee ha Amount hoo hooh);
> print "t: ", $_ = shift @data, "\n" until  ($_ and /Amount/);       # 
> start of transactions
> # $_ = shift @data until  ($_ and /Amount/);       # start of transactions
> 
> But if you've got a bunch of noise in there before 'Amount' you're wasting 
> a lot of assigns, I think.  Similarly, you'll run for quite a ways if 
> there *isn't* an "Amount" in there ;->
> 
> I tried to use the '...' flip-flop:
> [the flip-flop '..' operator] can test the right operand and
>        become false on the same evaluation it became true (as in awk), but 
> it still returns true once.  If you
>        don't want it to test the right operand till the next evaluation, 
> as in sed, just use three dots ("...")
>        instead of two.  In all other regards, "..." behaves just like ".." 
> does.
> 
> but couldn't get it to help here. I'd think you'd want to do this on the 
> front end, though.  Don't put it into @data in the first place
> while (<>) {
>  next if 1 .. /Amount/;
>  chomp;
>  push @data, $_;
> ...
> 
> or something.
> 
> a
> 
> Andy Bach
> Systems Mangler
> Internet: [EMAIL PROTECTED]
> VOICE: (608) 261-5738  FAX 264-5932
> 
> The competent programmer is fully aware of the strictly limited size of
> his own skull; therefore he approaches the programming task in full
> humility, and among other things he avoids clever tricks like the
> plague. -- Edsger Dijkstra
> 


-- 
Regards
    John McMahon
       [EMAIL PROTECTED]

_______________________________________________
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to