summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Scott <Peter@PSDT.com>2003-03-28 08:34:47 -0800
committerJarkko Hietaniemi <jhi@iki.fi>2003-04-01 15:56:27 +0000
commitdf26a7db8f2a7fec12d403bcefa0501353e16991 (patch)
tree071c6650a737a26bc285fbcfa13f8c6d6b7647a9
parentd002699eadfced2538773fac7c19592455e9d630 (diff)
downloadperl-df26a7db8f2a7fec12d403bcefa0501353e16991.tar.gz
Text::Abbrev warnings safe
Message-id: <5.2.0.9.2.20030328161002.00b45f08@shell2.webquarry.com> p4raw-id: //depot/perl@19114
-rw-r--r--lib/Text/Abbrev.pm1
-rw-r--r--lib/Text/Abbrev.t10
2 files changed, 10 insertions, 1 deletions
diff --git a/lib/Text/Abbrev.pm b/lib/Text/Abbrev.pm
index 08143fea8f..d7feedc30d 100644
--- a/lib/Text/Abbrev.pm
+++ b/lib/Text/Abbrev.pm
@@ -43,6 +43,7 @@ The values are the original list elements.
sub abbrev {
my ($word, $hashref, $glob, %table, $returnvoid);
+ @_ or return; # So we don't autovivify onto @_ and trigger warning
if (ref($_[0])) { # hash reference preferably
$hashref = shift;
$returnvoid = 1;
diff --git a/lib/Text/Abbrev.t b/lib/Text/Abbrev.t
index fb5a9841eb..38d4a39886 100644
--- a/lib/Text/Abbrev.t
+++ b/lib/Text/Abbrev.t
@@ -1,6 +1,6 @@
#!./perl
-print "1..7\n";
+print "1..8\n";
BEGIN {
chdir 't' if -d 't';
@@ -49,3 +49,11 @@ abbrev \%y, @z;
$s = join ':', sort keys %y;
print (($r eq $s)?"ok $test\n":"not ok $test\n"); $test++;
+
+
+# warnings safe with zero arguments
+my $notok;
+$^W = 1;
+$SIG{__WARN__} = sub { $notok++ };
+abbrev();
+print ($notok ? "not ok $test\n" : "ok $test\n"); $test++;