• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Perl открыть на запись несколько файлов одновременно

  • Автор темы etsilop
  • Дата начала
E

etsilop

Есть необходимость создать несколько файлов и писать в них одновременно данные.
подскажите как это правильно сделать - скрипт представленный ниже выдает ошибку.

#!/usr/bin/perl -w
use strict;
use Data::Dumper;
my @layers = ('a', 'b', 'c');
foreach(@layers){
print $_ ."\n";
open($_, ">_out_$_.txt");
print $_ 'test string';
}
__END__

./test_open.pl
a
Can't use string ("a") as a symbol ref while "strict refs" in use at ./test_open.pl line 7.
>
 
A

Axe79

Код:
#!/usr/bin/perl
@layers = qw(AAS3 BBS2 DDS1);
for (@layers){
print $_;
open($_, ">/home/axe/Desktop/$_") ||die "$!";
print $_ "test string";
close ($_);
}
набрал роботает
посмотри 'qw'
 
A

ad280379

доброго дня,
если файлы передаются из командной строки то получиться примерно следующее
(ваше условие относительно того что файлы нужно создать не учитывал но легко делается)

рабочий пример
--------------------------
#!/usr/bin/perl
#use strict;
$i=0;
@names = @ARGV;

while(<>)
{
if (eof)
{
($a,$;) = split(/\./,$names[$i]);
open($a,">$names[$i]") or die "Can't open $!";
print $a "Test string \n";
$i++;
close($a);
}
}
--------------------------

формат prg_name.pl file1 file2 file3 ... fileN

Есть необходимость создать несколько файлов и писать в них одновременно данные.
подскажите как это правильно сделать - скрипт представленный ниже выдает ошибку.

#!/usr/bin/perl -w
use strict;
use Data::Dumper;
my @layers = ('a', 'b', 'c');
foreach(@layers){
print $_ ."\n";
open($_, ">_out_$_.txt");
print $_ 'test string';
}
__END__

./test_open.pl
a
Can't use string ("a") as a symbol ref while "strict refs" in use at ./test_open.pl line 7.
>
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!