2014-12-31 2 views
1

У меня есть скрипт perl, который записывает несколько строк в файл. (Я проверил и вижу, что файл написан правильно) сразу после того, что я хочу, чтобы распечатать содержимое на экране, так что я пытаюсь сделать, чтобы это- прочитать файл и распечатать егоПечать содержимого файла на экран в perl

open (FILE, '>', "tmpLogFile.txt") or die "could not open the log file\n"; 
$aaa = <FILE>; 
close (FILE); 
print $aaa; 

, но я ничего не вижу на экране, что я делаю неправильно?

+2

Является ли это фактический код? As-is, вы открываете файл для записи, затем пытаетесь прочитать его ('$ aaa = ;'). Я бы не ожидал, что '$ aaa' будет иметь что-нибудь в нем, но я тоже не ожидал никакого содержимого файла. –

+0

'perl -pe0 tmpLogFile.txt' – TLP

ответ

0

попробовать это:

use strict; 
use warnings; 

my $filename = 'data.txt'; 
open(my $fh, '<:encoding(UTF-8)', $filename) 
    or die "Could not open file '$filename' $!"; 

while (my $row = <$fh>) { 
    chomp $row; 
    print "$row\n"; 
    } 
print "done\n" 
1

Для чтения необходимо указать режим открытия в <. Кроме того, $aaa = <FILE> имеет скалярный контекст и только читает строку. Использование print <FILE> вы можете иметь контекст списка и прочитать все строки:

open (FILE, '<', "tmpLogFile.txt") or die "could not open the log file\n"; 
print <FILE>; 
close (FILE); 
+0

спасибо, теперь я понял свою ошибку. но «он все еще не работает – user4409082

+1

Он работает здесь. Что значит «не работает»? Вы использовали мой код точно так, как показано или с изменениями? На самом деле есть tmpLogFile.txt и содержит строки, которые вы ожидаете? – Jens

Смежные вопросы