Разные заметки

Показаны сообщения с ярлыком perl. Показать все сообщения
Показаны сообщения с ярлыком perl. Показать все сообщения

вторник, 18 мая 2010 г.

Perl перенаправление ввода-вывода

#!/usr/bin/perl
### ПЕРЕМЕННЫЕ
$log="log.log";
$out="out.dat";
$err="err.dat";
###
#system ("rm $out $log $err");
 

### Сохраняем стандартный вывод и вывод ошибок
open(SAVEOUT, ">&STDOUT");
open(SAVEERR, ">&STDERR");
 

### Открываем файл для записи
open (LOG,"> $log") or die "do not open $log!!!\n";
 
### Процедура вывода в файл
sub prn2f {
        $param =$_[0];
        select (LOG); $|=1;
        print $param;
}
 
### Процедура вывода в изначальный STDOUT
sub prn2std {
        $param =$_[0];
        select (SAVEOUT); $|=1;
        print $param;
        select (LOG); $|=1;
}
 
### Процедура вывода в изначальный STDERR
sub prn2err {
        $param =$_[0];
        select (STDERR); $|=1;
        print $param;
        select (LOG); $|=1;
}
### Перенаправляем STDOUT и STDERR в файлы
sub std2file {
        open (STDOUT, "> $out") or die "do not forward STDOUT to $out...\n";
        open (STDERR, "> $err") or die "do not forward STDERR to $err....\n";
        select(STDERR); $| = 1; # отключаем буферизацию
        select(STDOUT); $| = 1; # отключаем буферизацию


### Восстанавливаем вывод
sub std2std {
        open(STDOUT, ">&SAVEOUT");
        open(STDERR, ">&SAVEERR");
}


### НАЧАЛО   ПРИМЕРА
prn2std ("Вывод в стандартную консоль\n");
prn2f ("Вывод в файл\n");
prn2err("Вывод в поток ошибок\n");

std2file();
prn2std ("Вывод в стандартную консоль\n");
prn2f ("Вывод в файл\n");
prn2err("Вывод в поток ошибок\n");

std2std();

### КОНЕЦ
__END__

понедельник, 19 апреля 2010 г.

Perl процедура даты-время

###
sub d_t {
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
$year=(1900+$year);
++$mon;
if ($mon<10) {$mon="0$mon";}; if ($mday<10) {$mday="0$mday";}; $dat="$mday-$mon-$year"; ### дата в формате 19-04-2010 if ($hour<10) {$hour="0$hour";}; if ($min<10) {$min="0$min";}; if ($sec<10) {$sec="0$sec";}; $vrem="$hour:$min:$sec"; ### время в формате 12:00:00 } ###

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


###
open (PRIMER, "> file.txt") or die "фигня с файлом file.txt....\n";
### Переключаем вывод в файл
$old_point=select(PRIMER);
...
print "Nachinaem rabotu.\n";
...
### Переключаем вывод в STDOUT
select($old_point);
close(PRIMER);