Schrift
[thread]11063[/thread]

Dateipfad verarbeiten



<< >> 3 Einträge, 1 Seite
Gast Gast
 2007-12-23 22:00
#104127 #104127
Hallo zusammen..

Ich möchte aus einem Dateipfad (z.b.: "/home/dername/Desktop/einordner") am Anfang einige Ordner (z.b.: "/home/dername") wegschneiden. Hab dazu mal etwas kleines geschrieben:
Code: (dl )
1
2
3
4
5
6
7
8
my $suchbegriff = "/home/dername";
my $ausdruck = "/home/dername/Desktop/einordner";
$ausdruck =~ s/^$suchbegriff//;
print("$ausdruck\n");

if(s/^$suche//){
print $';
}

Funktioniert auch ganz gut; nur leider wird $ausdruck überschrieben. Was ich eigentlich möchte, ist, das "Resultat" (d.h. im Beispiel: /Desktop/einordner) an eine Funktion zu übergeben und $ausdruck unverändert zu "behalten".
Ich könnte natürlich $ausdruck einer neuen Variable zuweisen um sie so zu "sichern", es geht doch aber sicher auch so wie ich beschrieben hab?
Hat jemand eine Idee, wie ich das lösen könnte? Danke schonmal in Voraus.:-)
renee
 2007-12-23 22:04
#104128 #104128
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Was spricht dagegen, es so zu machen?

Code (perl): (dl )
1
2
3
4
5
my $suchbegriff = "/home/dername";
my $ausdruck =  "/home/dername/Desktop/einordner";
(my $result = $ausdruck) =~ s/^$suchbegriff//;
funktion( $result );
print $ausdruck;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
ptk
 2007-12-23 22:06
#104129 #104129
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Du kannst folgendes schreiben:
Code: (dl )
(my $neuer_ausdruck = $ausdruck) =~ s/^\Q$suchbegriff//;

Bitte beachte, dass du $suchbegriff quoten musst, falls die Möglichkeit besteht, das sich dort Rx-Metacharacter befinden. Man macht das wie oben mit \Q oder vorher mit der Funktion quotemeta.

Alternativ könnte man einfach mit substr() arbeiten.
<< >> 3 Einträge, 1 Seite



View all threads created 2007-12-23 22:00.