Need help
am 14.08.2008 08:38:37 von Bilashi Sahu
Hi,
I wrote following sub routine. But got error like this
"Use of uninitialized value in pattern match (m//) at checkYadInsertFamily.pm line 71, line 6."
Could not find where I am doing wrong.
I will appreciate for your help.
thanks,
Bilashi
sub checkFreqCapping() {
my ($fhlog, $prop, $cmpnInfo, $orderInfo, $result) = @_;
my $name = $$cmpnInfo{"cmpgn_name"};
if( $name =~ /freqcap/ )
{
$fhlog->print("FreqINFO: Freqcapping is there\n");
$$result = "p";
}
}
_______________________________________________
ActivePerl mailing list
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs
Re: Need help
am 14.08.2008 09:36:06 von Bill Luebkert
Bilashi Sahu wrote:
> Hi,
>
> I wrote following sub routine. But got error like this
> "Use of uninitialized value in pattern match (m//) at checkYadInsertFamily.pm line 71, line 6."
1) Always supply a complete standalone test case that reproduces your
problem.
2) Always have a use strict and use warnings in your test case.
3) Sometimes just doing 1) and 2) will lead you to solve your own
problem.
> sub checkFreqCapping() {
> my ($fhlog, $prop, $cmpnInfo, $orderInfo, $result) = @_;
> my $name = $$cmpnInfo{"cmpgn_name"};
> if( $name =~ /freqcap/ )
> {
> $fhlog->print("FreqINFO: Freqcapping is there\n");
> $$result = "p";
>
> }
> }
You should have gotten an error on your prototype:
main::checkFreqCapping() called too early to check prototype at xx.pl line xxxx.
I removed the () from the sub definition which basically said that
the sub had no args and had no errors.
Output from my test:
FreqINFO: Freqcapping is there
result=p
I created the test case you should have posted:
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
use strict;
use warnings;
use IO::Handle;
my $io = new IO::Handle;
my $fhlog = $io->fdopen(fileno (STDOUT), "w") or die;
my $prop = 0;
my %cmpnInfo = (
cmpgn_name => 'freqcap',
foobar => 'barfu',
);
my $orderInfo = 0;
my $result = 0;
checkFreqCapping ($fhlog, $prop, \%cmpnInfo, $orderInfo, \$result);
print "result=$result\n";
exit;
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sub checkFreqCapping {
my ($fhlog, $prop, $cmpnInfo, $orderInfo, $result) = @_;
my $name = $$cmpnInfo{'cmpgn_name'} or do {
$$result = 'Error';
return;
};
if ($name =~ /freqcap/) {
$fhlog->print("FreqINFO: Freqcapping is there\n");
$$result = 'p';
}
$$result = 'Error';
}
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
__END__
_______________________________________________
ActivePerl mailing list
ActivePerl@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs