Na, das ist doch schon nicht schlecht fuer 4 Tage. :)
Willkommen im Club!
Und was die Zeile angeht: Perl ist eben gut darin, grep(1), cut(1) und vieles anderes zu ersetzen.
Wenn man dann sowieso ein Perl-Skript schreibt, sollte man moeglichst viel von perl selber erledigen lassen. Denn wenn das Skript einmal laeuft, ist es wesentlich effizienter, Perl-eigene Konstrukte zu benutzen, als das ueber mehrere extern aufgerufene Programme machen zu lassen.
Viel Spass noch.
PS: Dann koennte ich diese eine Zeile aber auch mal erlaeutern, damit du was davon hast:
`/sbin/ifconfig ppp0` =~ /RX packets:(\d+)/ and $Rxpackets = $1;
Teilen wir die Zeile erstmal in zwei Teile auf, getrennt durch das "and".
Links steht
`/sbin/ifconfig ppp0` =~ /RX packets:(\d+)/
und rechts
$Rxpackets = $1
Da das "and" eine logische Und-Verknuepfung mit niedriger Prioritaet ist, wird erst der linke Teil komplett ausgewertet, und wenn dieser einen wahren Wert ergibt, die Zuweisung
$Rxpackets = $1 ausgefuehrt.
Im linken Teil wird das externe Kommando "/sbin/ifconfig ppp0" aufgerufen und das Ergebnis zurueckgeliefert. Nur speichere ich es gar nicht erst in einer Variablen, sondern wende einen regulaeren Ausdruck darauf an. Dazu ist der Operator "=~" da.
Rechts dieses sogenannten Binde-Operators steht der regulaere Ausdruck, eingefasst in Schraegstriche: "RX packets:(\d+)". Der Text vorne ist klar, dahinter folgt "\d+", d.h. eine Folge von mindestens einem Ziffernzeichen. Die runden Klammern dienen dazu, dass Perl mir eben diese Ziffernfolge in der Variablen $1 speichert.
Der linke Ausdruck bedeutet also:
Rufe das externe Programm "/sbin/ifconfig" mit Parameter "ppp0" auf, und pruefe dann, ob in der Ausgabe der Text "RX packets:" gefolgt von einer oder mehr Ziffern vorkommt. Wenn ja, speichere diese Ziffernfolge in $1.
Wenn der Pattern-Match klappt, also der Ausdruck gefunden wurde, dann wird die Zuweisung rechts ausgefuehrt. Damit landet dann die Ziffernfolge in der Variablen $Rxpackets.
Alles klar? :)\n\n
<!--EDIT|Dubu|1091283919-->