Thread Parser Fehler bei POD in Listen (2 answers)
Opened by topeg at 2011-03-29 00:47

topeg
 2011-03-29 00:47
#147058 #147058
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Scheint so als würde der Parser in perl über POD in Listendefinitionen Stolpern.
Ich kann nicht herausfinden, ob das ein bekanntes Verhalten ist, oder als Bug gelten könnte.
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl
use strict;
use warnings;

my %x=(
=rem
  a=>1,
=cut
);


my @x=(
=rem
  1,
=cut
);


Code: (dl )
1
2
3
4
5
6
7
8
Number found where operator expected at ./test_rem.pl line 16, near "rem
1"
(Do you need to predeclare rem?)
syntax error at ./test_rem.pl line 8, near "(
="
syntax error at ./test_rem.pl line 15, near "(
="
Execution of ./test_rem.pl aborted due to compilation errors.


Ich sehe das das Parsen an der Stelle schwierig ist, siehe nächstes Beispiel:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;

sub head1($){shift}
sub cut(){'test'}

my $x=1;
my $y=1;
my @z=(
    $x
=head1 'test'

    ,$y
=cut
  );

print Dumper($x,$y,\@z);

ausgeführt:
Code: (dl )
1
2
3
4
5
6
$VAR1 = 'test';
$VAR2 = 'test';
$VAR3 = [
'test',
'test'
];

Erwartet hätte ich:
Code: (dl )
1
2
3
4
5
$VAR1 = 1;
$VAR2 = 1;
$VAR3 = [
1
];


Mit perldoc -otext | cat - kommt raus:
Code: (dl )
1
2
'test'
,$y


Selbes Problem:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;

sub head1($){shift}
sub cut(){'test'}

my $x
=head1 'test';

my $y
=cut
;

print Dumper($x);

Setzt man hinter das $x ein ; dann funktioniert es wie erwartet.

View full thread Parser Fehler bei POD in Listen