Perl help - slpit

Ma tanultam meg a perlt:), szóval csak szájbarágósan, lécci.

adott egy string:
$homepath = "\\szerver\megosztas\alkonyvtar\";
ebből hogy nyerem ki a szavakat, elfelejtve a bekszleseket?

ezzel probalkozom:
@tomb = split(/\\/, $homepath);
foreach $valami (@tomb)
{
print $valami;
}

De nemmegyen. Ugye jól érzem, hogy közeledem a megoldáshoz? Mi nem teccik neki? Ugye itt is \\ kell \ helyett?
Ehh szutyok vindóz az UNC-jével eggyütt.

Hozzászólások

jól csinálod, kivéve a homepath-ot, ott is kell escapelni a \-t..

$homepath = "szerver\\megosztas\\alkonyvtar\\";

Köszönöm a választ, sajna csak most jutottam újra vissza ehhez a melóhoz.

A baj az, hogy egy file-ből dolgozom, ami LDAP-ből kérdezte le az adatokat, és így nem tudok változtatni a bemenő adat formátumán: az már marad

sambaProfilePath: \\szerver\profiles\akarmi

ebből kivakarom a "sambaProfilePath: " részt, de ugye akkor még mindig nincsenek escape-elve a backslash-ek. Mit tegyek?

Felhívom a figyelmedet, hogy ha így adod meg a stringet:

$homepath = "\\szerver\megosztas\alkonyvtar\";

akkor az " jelek között a \ escapet jelent és kimenti a következő karaktert.

Ilyenkor le sem fut a script, mert a második " jel escapelve van, vagyis nincs bezárva a stringed.

Első körben próbáld így:

$homepath = '\\szerver\megosztas\alkonyvtar\\';

Ha ugyanis így írod:
$homepath = "\\szerver\megosztas\alkonyvtar\\";

Akkor ez lesz az escape után a változóban:
\szervermegosztaslkonyvtar\
Persze ha fileból olvasod be a stringet, akkor mindegy.

Ha csupa ilyen sor van a filedba:

\\szerver\megosztas\alkonyvtar\
\\szerver\megosztas\alkonyvtar1\
\\szerver\megosztas\alkonyvtar2\

Akkor:

open (IF,'bemeneti_file');
@lines=;
close IF;

foreach $homepath (@lines){

@tomb = split(/\\/, $homepath);

# shift @tomb; # Uncommentezd, ha nem akarod, hogy $tomb[0] ures legyen

print "@tomb\n";

}

Csaba