Leerzeichen von `pwd` entfernen ?
Ruen
- perl
0 agapanthus0 agapanthus0 MudGuard
1 Struppi
Hi nochmal,
so noch ein problem was ich gerne lösen würde aber nicht schaffe...
my $what = "txt";
my $akt_verz = pwd
;
my $Verzeichnis = "./";
my $URIVerzeichnis = "$Verzeichnis";
opendir(DIR, $Verzeichnis) || die "$Verzeichnis: $!";
foreach my $dat (@Dateien) {
if($dat =~ /.+.$what*/) {
$c ++;
next unless -f $dat;
my $fileSize = -s _;
my $groesse = $fileSize/1000000;
print "blablabla\n";
}
if (-d $dat) {
foreach my $dat (@Dateien) {
if (-d $dat) {
chdir($akt_verz.'/'.$dat);
opendir(DIR, $akt_verz.'/'.$dat);
print "$akt_verz.'/'.$dat";
print "\n";
my @Dateien = readdir(DIR);
foreach my $dat (@Dateien) {
................
Bei dem chdir den ich aufrufe chdir($akt_verz.'/'.$dat);
Setzt er mir ein leerzeichen nach dem $akt_verz und fügt dann /$dat hinzu.
Dass sieht dann so aus:
/home/user/Sonstiges /ordner2
Das funktioniert dann aber leider nicht mit der 2. opendir angabe da das leerzeichen da ist.
Wie kriege ich dieses nun weg ?
Danke!
Ruen
Moin.
my $akt_verz =
pwd
;
$act_verz ~= s/\s//s;
siehe auch http://de.selfhtml.org/cgiperl/sprache/regexpr.htm#suchen_ersetzen.
Gruß Frank
Oh, Fehler!
$act_verz ~= s/\s//s;
natürlich so: $act_verz =~ s/\s//s;
Und zur Erklärung: damit werden alle Leerzeichen und sonstige "Leerräume" (\s) durch nichts ersetzt.
Gruß Frank
Hi,
$act_verz ~= s/\s//s;
natürlich so: $act_verz =~ s/\s//s;
Und zur Erklärung: damit werden alle Leerzeichen und sonstige "Leerräume" (\s) durch nichts ersetzt.
auch die, die bleiben sollen, z.B. C:\program files\perl --> c:\programfiles\perl
Sicher nicht das gewünschte - ein $ könnte helfen ...
cu,
Andreas
Sebastian
Möglich wäre auch, du drehst den String um,
nimmst dann das erste Leerzeichen weg
und drehst den String wieder um.
Kompliziert, aber tut genau das was du willst.
Gruß
Sebastian
use Mosche;
Möglich wäre auch, du drehst den String um,
nimmst dann das erste Leerzeichen weg
und drehst den String wieder um.
Wie wäre es, einfach die Funktion chomp bzw chop zu benutzen?
use Tschoe qw(Matti);
so noch ein problem was ich gerne lösen würde aber nicht schaffe...
my $what = "txt";
my $akt_verz =pwd
;
pwd gibt einen String zurück und hängt ein Leerzeichen dran?
(ich kenne das Programm nicht)
my $Verzeichnis = "./";
my $URIVerzeichnis = "$Verzeichnis";
hier brauchst du keine Anführungszeichen.
opendir(DIR, $Verzeichnis) || die "$Verzeichnis: $!";
foreach my $dat (@Dateien) {
if($dat =~ /.+.$what*/) {
hier reicht:
if($dat =~ /.$what$/) {
Das * dürfte sogar falsch sein, da es bedeitet du suchst nach $what null oder mehrmals.
$c ++;
$c++;
next unless -f $dat;
my $fileSize = -s _;
Warum _? Tippfehler?
Es müßte eigentlich:
"$Verzeichniss$dat" sein. Denk daran opendir wechselt nicht das Verzeichniss.
if (-d $dat) {
foreach my $dat (@Dateien) {
if (-d $dat) {
chdir($akt_verz.'/'.$dat);
opendir(DIR, $akt_verz.'/'.$dat);
print "$akt_verz.'/'.$dat";
Hier kannst du im gegensatz zu oben doppelte anführungszeichen nehmen:
"$akt_verz/$dat" finde ich persönlich schöner
Struppi.