http://qs321.pair.com?node_id=649198


in reply to avoid uninitialized values for $_

If you just want to avoid the warnings, you can always inhibit them with no warnings. See perllexwarn.
use warnings; .. # in the block no warnings qw(uninitialized);
Are you aware that skipblanks() does not iterate over @data? The following code should do the same as your function:
sub skipblanks { # my @data = @_; # you probably want $x = shift || 0; my $x = shift; # foreach $x (@data) { if ($x) { $x =~ s/,/\./g; } return $x; # } }