簡體   English   中英

如何使用草莓 Perl 運行程序?

[英]How do I run programs with Strawberry Perl?

一位同事試圖在他的 Windows 機器上使用ack (一個 Perl 程序),並在 Linux 下嘗試過,並決定他肯定想使用它。 他設法在他的機器上安裝了Strawberry Perl ,但似乎無法弄清楚如何從命令提示符下運行 ack 。 他嘗試編輯#, 行。 但我知道那行不通。 我很確定草莓 perl 在他的路徑中。

您需要做什么才能使用 Strawberry 在 Windows 的 PATH 中運行通用 Perl 程序?

更新:我在網上看到一些關於 PATHEXT 變量的信息,但還不夠。

首先,注意程序在Path中,而不僅僅是perl.exe Perl 二進制文件和核心程序通常以<installdir>\bin結尾,但其他可能以站點特定目錄<installdir>\site\bin結尾。 命令

dir C:\strawberry\ack* /s

可能有助於您的搜索。 確保您的Path反映了您的設置。

至少據我所知,有兩種常用方法可以從 Windows 命令提示符運行 Perl 程序。

首先是使用pl2bat創建程序的批處理版本,它將與程序一起執行perl 已安裝的程序通常會自動執行此操作,因為MakeMakerModule::Build負責此操作。

第二個是創建一個.pl文件關聯。 這是通過創建注冊表項HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.pl\Shell\Open\Command (或HKEY_CURRENT_USER ,如果它僅適用於當前用戶)並將(Default)值設置為

"C:\strawberry\perl\bin\perl.exe" "%1" %*

這樣,您只需使用.pl擴展名命名程序即可調用它們。 現在您可以使用program.pl調用該程序。

您可能已經注意到,您可以在沒有擴展名的情況下調用 Windows 上的程序。 該程序在Path中搜索,但是當沒有擴展名時,使用PATHEXT來完成名稱。 Append .pl到列表中,您只需使用program即可調用該程序。 請注意,此列表中的順序對於搜索很重要,就像Path中的順序很重要一樣。

安裝人員通常會處理最后兩個步驟,但如果您想添加自己的步驟或需要修復它,這些知識很有用。

我只是安裝 ack 並從命令行運行它沒有問題。

草莓 Perl 安裝是否正確? 你能從 cmd.exe 運行“perl”嗎?

C:\> perl -V
Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
  Platform:
    osname=MSWin32, osvers=5.1, archname=MSWin32-x86-multi-thread
...

App::Ack 是否安裝正確?

C:\> cpan App::Ack
...
Installing C:\strawberry\perl\site\lib\App\Ack.pm
Installing C:\strawberry\perl\site\lib\App\Ack\Plugin.pm
Installing C:\strawberry\perl\site\lib\App\Ack\Repository.pm
Installing C:\strawberry\perl\site\lib\App\Ack\Resource.pm
Installing C:\strawberry\perl\site\lib\App\Ack\Plugin\Basic.pm
Installing C:\strawberry\perl\bin\ack
Installing C:\strawberry\perl\bin\ack.bat
Writing C:\strawberry\perl\site\lib\auto\ack\.packlist
Appending installation info to C:\strawberry\perl\lib/perllocal.pod
  PETDANCE/ack-1.88.tar.gz
  C:\strawberry\c\bin\dmake.EXE install UNINST=1 -- OK

如果是這樣,我不明白為什么你不能從命令行運行“ack”:

C:\> ack --version
ack 1.88

Copyright 2005-2009 Andy Lester, all rights reserved.

This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.

如果它不起作用,那么該鏈條中的哪些地方壞了? 例如,如果你不能從命令行運行“perl”,那么草莓沒有正確安裝(或者不在你的 PATH 中),你需要修復它。 但除此之外,ack 會使用“ack.bat”包裝器安裝到與“perl”相同的路徑中,因此如果您可以運行“perl”,您應該能夠運行“ack”。

另一種解決方案是使用 PAR::Packer 創建 ack.exe - 他根本不需要 Strawberry。

如果他按照這篇博文中的指示進行操作,他應該會沒事的。 我有一段時間不需要安裝 Strawberry Perl,但是 IIRC,在我安裝它之后,我可以像在 linux 盒子上一樣使用它。 (例如perl yourscripthere.pl

1.安裝strawberry-perl 2.打開perl命令行 3.編寫命令perl test.pl

腳步

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM