Leser: 21
QuoteCan't use an undefined value as a HASH reference at Subs.pm line 90.
my $back->{iglu} = 0;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ cat /tmp/t.pl
#! /usr/bin/perl
# vim:ts=4 sw=4 sts=4 et nu fdc=3:
use strict;
use warnings;
use Data::Dumper;
my $back->{iglu} = 0;
print Dumper( $back );
printf "v%vd\n", $^V;
__END__
$ perl /tmp/t.pl
$VAR1 = {
'iglu' => 0
};
v5.12.2
$ /opt/perl/bin/perl /tmp/t.pl
$VAR1 = {
'iglu' => 0
};
v5.10.1
$
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ cat t.pl
#! /usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my $code = sub { print "hallo @_\n"; };
print Dumper($code);
printf "v%vd\n", $^V;
$code->("Welt");
__END__
$ perl t.pl
$VAR1 = sub { "DUMMY" };
v5.8.8
hallo Welt
$
2011-01-07T14:37:11 pqkomisch. was ist an
my $code = sub {};
so viel anders als an
my $hash = {};
vielleicht redest du hier von subs, die sich selbst in der sub referenzieren, z.b. rekursive subs. diese muss man immer noch unter use strict in zwei schritten deklarieren.
2011-01-07T14:37:11 pqdas neue an der notation mit dem hash oben ist ja, dass es während der deklaration gleich auch benutzt und dereferenziert wird.
QuoteWarum sollte die Autovivikation nicht auch bei Scalaren funktionieren?
1
2
3
4
5
6
7
perl -wle'use Data::Dumper;
my $hashref;
$hashref->{foo} = 23;
print Dumper $hashref;'
$VAR1 = {
'foo' => 23
};
2011-01-07T15:15:18 pqwie ich schon schrieb, ist die neuerung des codes
my $hash->{foo} = 23;
dass während der deklaration die variable schon benutzt und dereferenziert wird.
deklaration und dereferenzierung. ist ein novum.
funktioniert interessanterweise nicht mit normalen hashes:
my $hash{foo} = 23;
syntax error at -e line 2, near "$hash{foo"