Nasıl bir kullanıcı'Perl ' nin ana dizini mı?
Kullanıcının ev dizini içinde bir dosya kullan onay dosyası yani var olup olmadığını kontrol etmek istiyorum:
if ( -e "~/foo.txt" ) {
print "yes, it exists!" ;
}
Bir dosya olsa bilefoo.txtkullanıcının ev dizini altında, her zaman Perl şikayet yok böyle bir dosya ya da dizin. Ne zaman I"". ~ değiştirin ^em>/home/jimmy(diyelim ki kullanıcı jimmy) Perl doğru karar ver.
"~" Dosen Perl iş ve Perl için yol ne olduğunu bana söyleyebilir mi neden açıklayabilir misiniz kullanıcının ev dizini bulmak?
CEVAP
~
işe yaramıyor ediliyor perl
-izm bir yerine bash
-izm. UNİX-tipi bir sistem üzerinde gibi görünüyor göz önüne alındığında, muhtemelenkolayçözüm $HOME
ortam değişkeni olarak kullanmak için:
if ( -e $ENV{"HOME"} . "/foo.txt" ) {
print "yes ,it exists!" ;
}
Ve evet, kullanıcı $HOME
ortam da değişken değişebilir biliyorum ama o zaman ne yaptıklarını biliyorlar sanıyorum. Onlar her şeyi hak ediyorlar yoksa :-)
Bunu yapmak istiyorsanızdoğruyol, daha çok platform meraklısı olan File::HomeDir, içine bakabilirsiniz. Aşağıdaki komut dosyası chkfile.pl
: eylem görebilirsiniz
use File::HomeDir;
$fileSpec = File::HomeDir->my_home . "/foo.txt";
if ( -e $fileSpec ) {
print "Yes, it exists!\n";
} else {
print "No, it doesn't!\n";
}
ve çeviri:
pax$ touch ~/foo.txt ; perl chkfile.pl Yes, it exists! pax$ rm -rf ~/foo.txt ; perl chkfile.pl No, it doesn't!