steckl: Datei - Zeile springen

Beitrag lesen

Hi,

versuche sinnvoll zu zitieren.

Wieso ist im Filehandle <DATA> bei der Zuweisung an $next der Inhalt der "nächsten" Zeile und nicht der "aktuelle" Zeile?
Das bei "while" das Filehandle auf die nächste Zeile hüpft ist mir bewusst. Nur bin ich verwirrt, dass dies ebenfalls bei einer Zuweisung geschieht.

while(<DATA>) {

next if (!/$pattern/);
  my $next = <DATA>
  print $1, $next;
}

  
macht das gleiche wie:  
~~~perl
  
while($zeile = <DATA>) {  
  next if ($zeile !~ /$pattern/);  
  my $next = <DATA>  
  print $1, $next;  
}  

nur dass bei while(<DATA>) der Inhalt der Zeile statt in $zeile in $_ geschrieben wird. Es ist also auch eine Zuweisung. Die Spezialvariable $_ wird immer dann verwendet, wenn keine andere angegeben ist.

Zu testzwecken kannst du ja mal $_ mit print ausgeben.

mfG,
steckl