[PERL] Formatierte Ausgabe von Consolen Eingabe


#1
Moin,

Ich hänge gerade in der Ausgabe von Perl fest.
Möchte den befehl "dir" in der Console ausführen und das ganze auf ein script pipen was mir dann nur die größe der Datei ausgibt, sowie den Dateinamen.

Bissher habe ich folgendes erarbeitet, das ist noch nicht beendet weil es irgendwie nicht klappt :-/

Code:
#!/usr/bin/perl
use strict;
use warnings;

while(<>)
{
	$_ =~ /\d*.(\d*)$/;
	print $1, "\n";
}
Der aufruf erfolgt mit
dir | %perl% main_ent.pl

Als fehler meldung bekomm ich leider immer

Use of uninitialized value in print at main_ent.pl line 9, <> line 3.
Use of uninitialized value in print at main_ent.pl line 9, <> line 5.
 

deepthroat

Erfahrenes Mitglied
#2
Hi.

Dein regulärer Ausdruck ist komisch. Bestehen deine Dateinamen alle aus Ziffern?

Und du solltest gründsätzlich prüfen ob der Ausdruck überhaupt mit der Zeile übereinstimmt. (daher kommen die Fehlermeldungen)

Zuletzt ist es besser Perl direkt für diese Aufgabe zu nehmen. Lies einfach alle Dateien ein (opendir, readdir) und bestimme die Größe mit stat.