in reply to split, Use of uninitialized value

Here is your code:

print STDERR "$rec->[IMP_WG] $rec->[CSC_HAN]\n"; if ( defined( $rec->[IMP_WG] ) && $rec->[IMP_WG] ne '' && defined( $rec->[CSC_HAN] ) && $rec->[CSC_HAN] eq '1' ) { print "$rec->[CLASSIF] $rec->[IMP_WG] $rec->[SRV_PLT]\n"; }

The print statement in the first line will be executed regardlessly. If in deed, $rec->[IMP_WG] and/or $rec->[CSC_HAN] are/is uninitialized, the warning you saw should be issued. To avoid this, simply test the values before you print, as you did in your second line.