Caveman
15-02-2006, 16:49
Hallo *,
ich möchte aus einem String mehrere Dateinamen erzeugen, die sich jeweils in einer Zahl unterscheiden:
aus mrtg.temp.cfg
wird dann mrtg.temp01.cfg, mrtg.temp02.cfg usw.
Versucht habe ich das (etwas umständlich) bisher so:
MrtgCfgFileName(++$i) # Aufruf
sub MrtgCfgFileName # Unterprogramm
{
# Erstellt den Namen fuer die mrtg.cfg-Dateien
my @mrtgcfgfile;
@mrtgcfgfile = split /\./, Mrtgcfg; # Punkt als Trennzeichen
$mrtgcfgfile[$#mrtgcfgfile-1] .= sprintf "%02d", $_[0]; # Zahl einfuegen
join ".", @mrtgcfgfile; # Dateinamen zurueckgeben
}Gibt es dafür eine kürzere Lösung mit regulären Ausdrücken? Einen Einzeiler, wenn möglich.
Nochmal zusammengefasst: Es soll vor dem letzten Punkt eine zweistellige Zahl eingefügt werden.
Danke schon mal für Lösungsansätze
ich möchte aus einem String mehrere Dateinamen erzeugen, die sich jeweils in einer Zahl unterscheiden:
aus mrtg.temp.cfg
wird dann mrtg.temp01.cfg, mrtg.temp02.cfg usw.
Versucht habe ich das (etwas umständlich) bisher so:
MrtgCfgFileName(++$i) # Aufruf
sub MrtgCfgFileName # Unterprogramm
{
# Erstellt den Namen fuer die mrtg.cfg-Dateien
my @mrtgcfgfile;
@mrtgcfgfile = split /\./, Mrtgcfg; # Punkt als Trennzeichen
$mrtgcfgfile[$#mrtgcfgfile-1] .= sprintf "%02d", $_[0]; # Zahl einfuegen
join ".", @mrtgcfgfile; # Dateinamen zurueckgeben
}Gibt es dafür eine kürzere Lösung mit regulären Ausdrücken? Einen Einzeiler, wenn möglich.
Nochmal zusammengefasst: Es soll vor dem letzten Punkt eine zweistellige Zahl eingefügt werden.
Danke schon mal für Lösungsansätze