Bir dosya açan ve içine veri yazabilen bir perl betiği sahibiyim. Bazen bu dosya sadece bazı makinelerde izinleri okuyor. Bu gibi durumlarda, şu anda betik dosyayı açamadığı için ölür. Benim şartım, bu gibi durumlarda, script'imin devam etmesini ve içeriklerini dosyaya yazmak yerine STDOUT'a yerleştirmesini istiyorum. Ben warn
die yerine kullanacağım, ama ben bilmek istiyorum benim dosya tanıtıcı STDOUT
için geri kalan kod değiştirmek gerek yok, benim gerçek kod print FILE1 <>
var olmak pek çok yerde var ve neden yok her yerde if\else
koşullarını koymak için mümkün. FILE1
ile STDOUT
arasındaki adresi yazdıracağım, baskı ifadesinin STDOUT içinde çıkacağını veya FILE1
dosya kümesinde ayarlanan değere bağlı olarak dosyaya yazacağını istiyorum. Perl kullanarak mümkün mü?Alias dosya tanıtıcısı STDOUT içinde perl ile
$file = "testfile.txt";
open(FILE1, ">> $file") or die "Can not read file $file: $! \n";
print FILE1 "Line1 \n";
print FILE1 "Line2 \n";
print FILE1 "Line3 \n";
print FILE1 "Line4 \n";
close FILE1
Olası yinelenen http://stackoverflow.com/questions/3807231/how-can-:
Ayrıca bu i sorununuzu çözecek nasıl lexical file handles
kullanmaya başlamak isteyebilir i-test-if-i-can-write-to-a-filehandle – devnull