Leser: 22
1 2 3 4 5 6 7 8 9 10
#!/usr/bin/env perl # Core Modules use strict; use warnings; open my $fh, '<', 'datei_die_nicht_existiert' or do { require Carp; Carp::confess "asd"; }; close $fh;
1
2
3
4
sidburn@vs166101:~$ perl -V | grep "revision"
Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
sidburn@vs166101:~$ ./require.pl
asd at ./require.pl line 8
1
2
3
4
5
6
7
sidburn@sid:~/perl$ perl -V | grep "revision"
Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
sidburn@sid:~/perl$ ./require.pl
String found where operator expected at ./require.pl line 8, near "Carp::confess "asd""
(Do you need to predeclare Carp::confess?)
syntax error at ./require.pl line 8, near "Carp::confess "asd""
Execution of ./require.pl aborted due to compilation errors.
Carp::confess("asd")
QuoteThe "&" is optional in modern Perl, as are parentheses if the subroutine has been predeclared.
2009-06-15T12:33:46 sid burnDaher brich es ohne Klammern natürlich ab, da die Funktion zum Zeitpunkt des Compilierens noch nicht bekannt ist.
2009-06-15T12:37:56 pqnaja, so natürlich schien dir das beim ersten post noch nicht =)
Quotewenn man also weiss, dass klammern eben erstmal pflicht sind, es sei denn, die funktionen wurden (rechtzeitig) deklariert, würde man das verhalten in 5.10 nicht als bug bezeichnen, sondern sich über die 5.8 version wundern.