A list in Perl is pretty much like an array although there are some fine differences between these two concepts. I think your nomenclature {} vs () and description may not be the best. The {} does not describe an array or a "list".
An "exit code" says to me that this is single integer value from returned to the O/S, not a multi-valued thing or data structure - an "exit code" is an integer in Windows or Unix.
I think you mean to check the return array value from a subroutine?
This code checks that the main program only got one returned value and that that single value is "3".
#!usr/bin/perl -w
use strict;
my @result;
@result = X();
print "array returned from sub X is: ", @result,"\n";
if ((@result == 1) and ( grep {$_ == 3}@result ))
{
print "Sub X passes the test", @result,"\n";
}
else
{
print "@result: for Sub X fails the test\n";
}
print "\n";
@result = Y();
print "array returned from Sub Y is: ", @result,"\n";
if ((@result == 1) and ( grep {$_ == 3}@result))
{
print "Sub Y @result passes the test\n";
}
else
{
print "Sub Y @result fails the test\n";
}
print "\n";
sub X
{
return (1,2,3,4,5,6,7,8,9);
}
sub Y
{
return (3);
}
__END__
array returned from sub X is: 123456789
1 2 3 4 5 6 7 8 9: for Sub X fails the test
array returned from Sub Y is: 3
Sub Y 3 passes the test
Update: well if the OP's intention is that should work for anything but 3, then the modifications should be obvious.
|