2012-01-05 4 views
0

Как бы решить следующее ошибки в своем коде:Как решить «неинициализированное значение в скалярном назначении» в коде Perl?

Использование неинициализированного значения в скалярном назначения в faStat2 линии 59.

#!/usr/bin/perl 
use strict; 
use warnings; 

... 

$~ = *OUTFILE; #This is the line it is complaining about 
my $cmd = $0; 
$cmd =~ s#.*/##; 
+2

Я не могу воспроизвести вашу ошибку: http://sscce.org. Тем временем, http://perldoc.perl.org/diagnostics.html. – toolic

+1

Открыт 'OUTFILE'? Также '$ ~ = * OUTFILE' не имеет никакого смысла. Возможно, '$ ~ = 'OUTFILE'' (Это тоже не имеет смысла)? –

+0

Мэтт, в нескольких из ваших вопросов, которые вы используете '...', для удобства использования вы можете просто предоставить минимальный пример. Не имеет значения, что происходят другие вещи, только те части, которые вызывают проблему. Просто упрощает выполнение именно того, что вы делаете. –

ответ

0

OUTFILE должны быть в одинарных кавычках, потому что без них это bareword и с * перед ним он рассматривается как предмет, требующий скаляра. Код должен выглядеть так:

#!/usr/bin/perl 
use strict; 
use warnings; 

... 

$~ = 'OUTFILE'; 
my $cmd = $0; 
$cmd =~ s#.*/##; 
Смежные вопросы