Я полный новобранец с Perl. То, что я пытаюсь сделать, - открыть список файлов, увеличить три разных переменных в каждом файле, сохранить файлы и закрыть.Приращение переменных в файлах
Переменные выглядеть следующим образом
This_Is_My_Variable03
This_Is_My_Variable02
This_Is_My_Variable01
Переменная окончание в 01 в файле несколько раз. Переменные иногда являются частью строки символов. This_Is_My_Variable
часть переменной никогда не изменяется.
Спасибо.
Это может быть не лучшим решением, но это работает
#!perl=C:\IBM\RationalSDLC\ClearCase\bin\perl
use warnings;
use strict;
use Tie::File;
tie my @data, 'Tie::File', 'myfile.txt' or die $!;
s/(This_Is_My_Variable)(\d+)+/$1.++($_=$2)/eg for @data;
untie @data;
Спасибо Бородину за получение меня началось с Tie::File
: это определенно помогло.
Второе решение с использованием в то время как петля
#!perl=C:\IBM\RationalSDLC\ClearCase\bin\perl
use warnings;
#use strict;
sub inc {
my ($num) = @_;
++$num;
}
open(FILE, "myfile.txt") || die $!;
$i = 0;
while (<FILE>) {
$string = $_;
if (/This_Is_My_Variable../) {
$string =~ s/(This_Is_My_Variable)(\d+)+/$1.++($_=$2)/eg;
print "$string \n";
$i++;
}
else {
print "$string \n";
}
}
close FILE;
Не могли бы вы показать нам, что вы пробовали? Чтение этих документов [open] (http://perldoc.perl.org/functions/open.html), [readline] (http: //perldoc.perl.org/functions/readline.html), [закрыть] (http://perldoc.perl.org/functions/close.html) и [Автоматическое увеличение и автоматическое уменьшение] (http://perldoc.perl.org/ perlop.html # Auto-increment-and-Auto-декремент), вы должны начать. – chansen
StackOverflow действительно не подходит для изучения Perl с нуля. Почему бы вам не потратить немного времени на изучение основ, попробуйте [Modern Perl Book] (http://www.onyxneon.com/books/modern_perl/index.html) и вернитесь, если у вас остались вопросы. –
** Попробуйте что-нибудь написать **, а затем, когда это не сработает, принесите его нам, чтобы помочь вам. Вы начинаете, мы помогаем. Мы не пишем его для вас. Покажите нам фактический код, который вы пробовали, а затем мы можем вам помочь. –