At 12:45 PM 08/15/2003, Bob Showalter wrote:
Scott Taylor wrote:
> Hello all,
>
> I'm trying to open a file (3 separate files anyway) and iterate
> through them In this portion of my script:
>
> foreach ("dct","lfl","usa"){
>    my ($co_id) = $_;
>    print "$co_id\n";
>    system "rcp orion:/u1/syncdata/drvdat.$co_id
> /tmp/drv.temp" || next;
>
>    open(InFile, "/tmp/drv.temp") || die "No such file: $!\n";
>          while(<InFile>){ chomp;
>          my ($DRVID,$DRVNAME,$DRVPHONE,$DRVTRKID,$DRVLEASEOP) =
>     split(/,/,$_); ...
>    }
> }
>
> the "while(<InFile>){" line returns this message:
>
> Modification of a read-only value attempted

Your outer foreach() loop uses $_ as the loop variable. Inside the loop, $_
is an alias for the value being iterated. Since you're interating over a set
of literals ("dct","lfl","usa"), $_ becomes effectively read-only inside the
loop. You're trying to use $_ again as the target of the file read operation
with while (<InFile>).

Probably easiest solution is to use $co_id as the iterator, since you're
assigning it from $_ anyway:

for my $co_id (qw/dct lfl usa/) {


Makes much more sense now. Thanks. :)


-- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to