----------8<--------
> # no warnings;
> next if $This =~ /\.pl$/;
The above should be 'return' rather than 'next'.
----------8<--------
Why didn't I think of that?
----------8<--------
Where is your description of the error ?
----------8<--------
I supplied the smallest failing sample code, but no output - ok;-
C:\Perl\Programs>perl
use strict;
use warnings;
use File::Find;
find(\&Wanted, '.');
sub Wanted
{
my $This = $File::Find::name;
# no warnings;
next if $This =~ /\.pl$/;
print "FOUND: $This\n";
}^D
FOUND: .
Exiting subroutine via next at - line 12.
Exiting subroutine via next at - line 12.
Exiting subroutine via next at - line 12.
Exiting subroutine via next at - line 12.
Exiting subroutine via next at - line 12.
Exiting subroutine via next at - line 12.
Exiting subroutine via next at - line 12.
Exiting subroutine via next at - line 12.
FOUND: ./Backup.pl~
return 0 if $This =~ /\.pl$/; gets rid of all that though. Thanks!
----------8<--------
> Any tips?
As to what ? Where is a description of the problem ?
----------8<--------
To the whole post.
----------8<--------
Are you aware of the 'defined' function for testing if a vrbl is defined
?
----------8<--------
Yes. However when using the value from the DB directly I don't see any
other option but to not use warnings:-
<SAMPLE DATA IN DB>
MTEName WW
10
</SAMPLE DATA IN DB>
<CODE WITH OUTPUT>
use strict;
use warnings;
use Win32::ODBC;
my ($db, @Data);
unless($db = new Win32::ODBC("dsn=FLEX; UID=bill; PWD=issmart"))
{
print "Error: " . Win32::ODBC::Error() . "\n";
exit;
}
my $sql = "SELECT TOP 10 MTEName, YYYY FROM SBLDispo";
if($db->Sql($sql))
{
print "Error, SQL failed: " . $db->Error() . "\n$sql\n";
$db->Close();
}
else
{
#no warnings 'uninitialized';
while($db->FetchRow())
{
my %Temp = $db->DataHash();
foreach my $Key(keys %Temp)
{
push @Data, $Temp{$Key} if $Temp{$Key} =~ /^\w$/
and defined $Temp{$Key};
}
}
}
$db->Close();
foreach(@Data)
{
print;
}^D
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
Use of uninitialized value in pattern match (m//) at - line 30.
</CODE WITH OUTPUT>
The above example is the smallest set which reproduces what I'd like to
avoid. I don't see how defined helps when I need to use $Temp{$Key}
directly as with the regexp. Of course the SQL statement should be
optimised, but again this is the smallest set of code that produces this
output for valid conditions in my environment.
Cheers
Just in
_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs