- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
# Функция обновляет файл базы
# Пользоваться: cut_jnl($bc, $local_ip, $jnl_string_new);
sub cut_jnl
{
my ( $bc, $ip_old, $string_new ) = @_;
open (JNL, "<$bc->{const}{base_jnl}");
undef $\;
my @all_file = <JNL>;
close JNL;
chomp($string_new);
$string_new .= "\n" if ($string_new ne '');
grep { s/.*$ip_old;.*/$string_new/sg } @all_file;
open (JNL, ">$bc->{const}{base_jnl}");
grep { print JNL } @all_file;
close JNL;
$bc->{const}{info}->debug("Update jnl, update string: $ip_old on $string_new");
}
no comments... особенно доставляют инструкции grep {}, это похлеще map {} будет.
Мистер Хэнки 22.02.2011 16:19 # +1
.....прекрасно
Dummy00001 23.02.2011 19:49 # 0
суровое гавно...
ну ведь можно ж по человечески написать `print JNL $_ for @all_file;` - не говоря уже о `print JNL @all_file` - и читабельней, и всем понятно.... но это целью наверное не стояло.
SadKo 23.02.2011 22:54 # +1