SORU
25 EYLÜL 2009, Cuma


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
25 EYLÜL 2009, Cuma


~ 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!

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ELPRESADOR

    ELPRESADOR

    21 HAZİRAN 2008
  • pain975

    pain975

    27 NİSAN 2008
  • Phymec

    Phymec

    18 Temmuz 2009

İLGİLİ SORU / CEVAPLAR