Есть такой инструмент – PAR Packager , и сделать exe-шник с его помощью проще простого:
C:\ pp -o filename.exe filename.pl
Не помню, входит ли утилитка в состав ActivePerl. Если что – запускаете ppm из командной строки и устанавливаете PAR. Для любителей рисовать окошки из perl – есть логичное продолжение – tkpp. Недостаток конечно есть – размер exe-шника, да и скорость выполнения – будет точно такой же, как и у perl-скрипта.
Что еще можно использовать?
1. Когда-то, для этого же я использовал perl2exe от IndigoStar. Но так как это коммерческий продукт, то по окончании программа выплевывала строчку о том, что это «незарегистрированная версия». К тому же, как отмечают продвинутые камрады – достаточно просто раскомпилировать обратно и получить исходники.
2. Есть такая утилитка – perlcc. Генерирует исходник на C, который можно потом собрать с помощью компилятора. К сожалению, существует не для всех версий perl – последняя версия 5.8.9 (я когда-то пробовал этот путь, но что-то там получалось не очень весело, типа компилировалось только с VisualStudio , плюс еще какой-то геморой с либами, может быть сейчас что-то и изменилось). Но с точки зрения размера выполняемого файла – без вариантов ;)
ЗЫ – только что попробовал скомпилить скриптик в 2 строки под Solaris – компилится, но при выполнении падает в корку ;(, так что ситуация далека от идеала.
Снова perl. Немного о встроенных переменных
25.08.2009
По мотивам стандартной документации Perlvar.
Считать целиком файл в переменную:
open (MOCK, $filename) or die "$!";
local $/;
# переопределяем встроенную переменную "разделитель строк" ($/ или $INPUT_RECORD_SEPARATOR или $RS)
$_ =<MOCK> ; # захавать моск файл целиком
close (MOCK);
Напечатать содержимое массива:
@a=qw( 1 2fewf wf g ag f);
local $,="\n";
# переопределяем встроенную переменную "разделитель полей" ($, или $OUTPUT_FIELD_SEPARATOR или $OFS)
print @a;
Читать полностью »
Старый дедовский способ достаточно быстро забакапить файловую систему ufs.
Способ поднятый из манов ;) Решил запостить, чтобы легче было искать.
Но и вдруг кому пригодится? ;)
Как вычислить разницу между двумя датами?
19.03.2009
Иногда требуется вычислить разницу в днях между двумя датами:
$ perl -e ‘use Date::Calc qw(:all); print Delta_Days(2007,8,17, 2009,3,20)’
581
или, если неустановлен модуль Date::Calc, то
$ perl -e ‘use POSIX; $y0=2007; $m0=8; $d0=17; $y1=2009; $m1=3; $d1=20; printf( «%i\n», POSIX::difftime( POSIX::mktime(0,0,0,$d1,$m1-1,$y1-1900), POSIX::mktime(0,0,0,$d0,$m0-1,$y0-1900) ) / 86400 );’
581
Сравнить содержимое файлов в каталогах
27.02.2009
На днях пришлось анализировать два Sun Explorer-а, собранных с одного сервера с периодом в полгода. Так как ничего unix-ового под рукой не было, то попробовал с ходу найти программку, которая сравнивает 2 каталога и выводит отсутствующие файлы и сообственно различия. Вот… сходу бесплатных утилит не нашлось, пришлось написать на perl. Итак, скрипт, который
- находит файлы, отсутствующие во втором каталоге
находит файлы, отличающиеся по дате модификации и размеру
находит файлы, отличающиеся по содержанию
Так как написан на perl, то под Windows требует установленного perl (ActivePerl, например) или можно скачать скомпилированный бинарник.