Perl执行Windows命令一般有三种方式:
1. system
示例: system "notepad.exe hello.txt"
2.``
示例:notepad hello.txt
3. system 1
示例:system 1, "notepad hello.txt"
4. exec
示例:exec "notepad.exe hello.txt" unless fork
总结:
start notepad && start notepad
start notepad.exe
Perl几乎不需要安装,各个linux里应该都有,MinGW、Cygwin里也有。但是我的MinGW和Cygwin都不能通过cpan -i Tk
安装上Tk,报缺crypt.h错误,找不到解决方案。于是下了个Strawberry Perl,照样用cpan
命令装不上。只好手动安装。
安装步骤
perl/bin
和c/bin
放到环境变量PATH
中perl/lib/Tk-804.034
目录perl Makefile.PL
gmake test
gmake install
hello.pl
use warnings FATAL => 'all';
use Tk;
use strict;
my $wnd = Tk::MainWindow->new;
$wnd->geometry("600x400");
$wnd->title("Hello Perl && Tk");
$wnd->Label(-text => "Oreo")->pack;
$wnd->Button(-text => "Close", -command => sub {exit})->pack;
MainLoop;
使用pp打包tkx应用,不能直接运行,提示缺少TCL、Tk相关的库,而且不是直接把缺失的库直接拷贝到同一目录就能用。因此总结一下打包步骤。
pp --compile --noscan --dependent --compress 6 hello.pl
打包后的文件结构如下:
$ tree -L 2
.
├── bin
│ ├── hello.exe
│ ├── hello.pl
│ ├── libgcc_s_dw2-1.dll
│ ├── libstdc++-6.dll
│ ├── libwinpthread-1.dll
│ ├── perl526.dll
│ ├── tcl86.dll
│ ├── tk86.dll
│ └── zlib1.dll
└── lib
├── tcl8.6
└── tk8.6
备注:
../bin
位置,意味着hello.exe不能放到app根目录。定義數組,遍歷輸出
use 5.010;
use utf8;
use strict;
use warnings;
use Data::Dumper;
use lib '.';
use Lingua::Sinica::PerlYuYan;
use utf8;
binmode STDOUT, ':utf8';
吾陣飛禽
賦起道燕雀哉
又道鴻鵠哉
又道鴛鴦哉
合兮
印此並列
皆陣飛禽
輸出結果:
燕雀
鴻鵠
鴛鴦
注:
foreach
翻譯成了皆