Thread .txt und Arrays (24 answers)
Opened by Proxy at 2008-07-20 21:30

renee
 2008-07-22 13:36
#112435 #112435
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
betterworld+2008-07-21 23:01:26--
[...] Das liegt wohl daran, dass der Parser das Konstrukt behandelt, als stuende es in einer einzigen Zeile. Jedenfalls in perl 5.8.8, vielleicht hat sich das in 5.10 ja geaendert.


Nein, das hat sich nicht geändert und wird sich vermutlich nicht ändern. Es wir nur für jedes "nextstate" die Zeilennummer gespeichert. Da die Definition des Hashs nur ein Statement ist, wird das als eine Zeile behandelt. Stehen zwei Statements in einer Zeile, wird zwei Mal das "nextstate" mit der Zeilennummer ausgegeben:

Hauptprogramm:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
sub dummy {}
sub foo {}


my %hash = (
dummy => &dummy(),
foo => foo(),
);

dummy(); &foo();


Ausgabe von B::Concise:
Code: (dl )
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
rbaecker@www-devel-rbaecker ~/perl510/perl-5.10.0 $ ./perl -Ilib -MO=Concise,-exec ~/sub_called.pl
1 <0> enter
2 <;> nextstate(main 3 sub_called.pl:5) v:{
3 <0> pushmark s
4 <$> const(PV "dummy") s/BARE
5 <0> pushmark s
6 <$> gv(*dummy) s
7 <1> entersub[t2] lKS/TARG,AMPER,1
8 <$> const(PV "foo") s/BARE
9 <0> pushmark s
a <$> gv(*foo) s
b <1> entersub[t3] lKS/TARG,1
c <0> pushmark s
d <0> padhv[%hash:3,4] lRM*/LVINTRO
e <2> aassign[t4] vKS/COMMON
f <;> nextstate(main 4 sub_called.pl:10) v:{
g <0> pushmark s
h <$> gv(*dummy) s
i <1> entersub[t5] vKS/TARG,1
j <;> nextstate(main 4 sub_called.pl:10) v:{
k <0> pushmark s
l <$> gv(*foo) s
m <1> entersub[t6] vKS/TARG,AMPER,1
n <@> leave[1 ref] vKP/REFC
/home/rbaecker/sub_called.pl syntax OK
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/

View full thread .txt und Arrays