Perl Can't use string as a symbol ref while strict refs

后端 未结 3 675
执念已碎
执念已碎 2021-02-19 00:50

I need some guidance with the following Perl code. When I leave the no strict \'refs\', the sub works fine. But if the no strict \'refs\'

3条回答
  •  忘掉有多难
    2021-02-19 01:15

    You're asking perl to use the value of $fh as the name of the filehandle here:

    for ( @alpha) {                            
                $fh = $_ ;
                open ( $fh,">","$_-$file" )  || die $!;      <--------- HERE
                push @FH, $fh;
        }
    

    You should instead consider using a lexical variable and having that autovivified into a filehandle by open, then store this in a hash to get at it later:

    for ( @alpha) {                            
                open ( my $fh,">","$_-$file" )  || die $!;
                $handles{$_} =  $fh;
    }
    

    so that you can use it later here:

    while ( my $row = $csv->getline( *LOG ) ) {
                if ( $row->[0] =~ /^(\w)/ ) {
                        print $handles{$1}                       <--------- HERE
                                ...
    

提交回复
热议问题