GoGPT Best VPN GoSearch

OnWorks favicon

perlfaq3 - ອອນລາຍໃນຄລາວ

ເປີດໃຊ້ perlfaq3 ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີຜ່ານ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ນີ້ແມ່ນຄໍາສັ່ງ perlfaq3 ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍໆບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator

ໂຄງການ:

NAME


perlfaq3 - ເຄື່ອງມືການຂຽນໂປຼແກຼມ

ເວີຊັ່ນ


5.021009 Version

ລາຍລະອຽດ


ພາກນີ້ຂອງ FAQ ຕອບຄໍາຖາມທີ່ກ່ຽວຂ້ອງກັບເຄື່ອງມືການຂຽນໂປລແກລມແລະການຂຽນໂປຼແກຼມ
ສະຫນັບສະຫນູນ.

ວິທີການ do I do (ອັນໃດນຶ່ງ)?
ທ່ານໄດ້ເບິ່ງ CPAN (ເບິ່ງ perlfaq2)? ໂອກາດແມ່ນວ່າຜູ້ໃດຜູ້ຫນຶ່ງໄດ້ຂຽນແລ້ວ a
ໂມດູນທີ່ສາມາດແກ້ໄຂບັນຫາຂອງທ່ານໄດ້. ທ່ານໄດ້ອ່ານ manpages ທີ່ເຫມາະສົມບໍ? ນີ້ແມ່ນ
ດັດ​ຊະ​ນີ​ໂດຍ​ຫຍໍ້​:

ຄວາມຮູ້ພື້ນຖານ
perldata - ປະເພດຂໍ້ມູນ Perl
perlvar - ຕົວແປທີ່ກຳນົດລ່ວງໜ້າ Perl
perlsyn - Perl syntax
perlop - ຕົວປະຕິບັດການ Perl ແລະກ່ອນຫນ້າ
perlsub - routines ຍ່ອຍ Perl
ການບໍລິຫານ
perlrun - ວິທີການປະຕິບັດນາຍພາສາ Perl
perldebug - ການດີບັກ Perl
ຫນ້າທີ່
perlfunc - ຟັງຊັນສ້າງໃນ Perl
ຈຸດປະສົງ
perlref - ການອ້າງອິງ Perl ແລະໂຄງສ້າງຂໍ້ມູນ nested
perlmod - ໂມດູນ Perl (ຊຸດແລະຕາຕະລາງສັນຍາລັກ)
perlobj - ວັດຖຸ Perl
perltie - ວິທີການຊ່ອນຊັ້ນວັດຖຸໃນຕົວແປທີ່ງ່າຍດາຍ
ໂຄງສ້າງຂໍ້ມູນ
perlref - ການອ້າງອິງ Perl ແລະໂຄງສ້າງຂໍ້ມູນ nested
perllol - manipulating array ຂອງ arrays ໃນ Perl
perldsc - Perl Data Structures Cookbook
ໂມດູນ
perlmod - ໂມດູນ Perl (ຊຸດແລະຕາຕະລາງສັນຍາລັກ)
perlmodlib - ການກໍ່ສ້າງໂມດູນ Perl ໃຫມ່ແລະຊອກຫາທີ່ມີຢູ່ແລ້ວ
Regexes
perlre - ການສະແດງອອກປົກກະຕິ Perl
perlfunc - Perl builtin functions>
perlop - ຕົວປະຕິບັດການ Perl ແລະກ່ອນຫນ້າ
perllocale - ການຈັດການທ້ອງຖິ່ນ Perl (ສາກົນແລະທ້ອງຖິ່ນ)
ຍ້າຍໄປ perl5
perltrap - ກັບດັກ Perl ສໍາລັບ unwary ໄດ້
perl
ການ​ເຊື່ອມ​ຕໍ່​ກັບ C
perlxstut - ການສອນສໍາລັບການຂຽນ XSUBs
perlxs - ຄູ່ມືການອ້າງອີງພາສາ XS
perlcall - ສົນທິສັນຍາການໂທ Perl ຈາກ C
perlguts - ແນະນໍາ Perl API
perlembed - ວິທີການຝັງ perl ໃນໂຄງການ C ຂອງທ່ານ
ຕ່າງໆ
<http://www.cpan.org/misc/olddoc/FMTEYEWTK.tgz> (ບໍ່ແມ່ນໜ້າຜູ້ຊາຍແຕ່ຍັງມີປະໂຫຍດ, ກ
ການ​ເກັບ​ກໍາ​ຂໍ້​ຄວາມ​ຕ່າງໆ​ກ່ຽວ​ກັບ​ເຕັກ​ນິກ Perl​)

ຕາຕະລາງເນື້ອໃນ crude ສໍາລັບຊຸດ Perl manpage ແມ່ນພົບເຫັນຢູ່ໃນ perltoc.

ວິທີການ ສາມາດເຮັດໄດ້ I ການນໍາໃຊ້ Perl ໂຕ້ຕອບ?
ວິທີການປົກກະຕິໃຊ້ Perl debugger, ອະທິບາຍຢູ່ໃນ perldbug(1) manpage, on an
ໂປຣແກມ "ເປົ່າ", ແບບນີ້:

perl -de 42

ຕອນນີ້ພຽງແຕ່ພິມລະຫັດ Perl ທີ່ຖືກຕ້ອງຕາມກົດໝາຍ, ແລະມັນຈະຖືກປະເມີນທັນທີ. ທ່ານ​ຍັງ​ສາ​ມາດ
ກວດ​ສອບ​ຕາ​ຕະ​ລາງ​ສັນ​ຍາ​ລັກ​, ໄດ້​ຮັບ stack backtraces​, ກວດ​ກາ​ເບິ່ງ​ຄ່າ​ຕົວ​ປ່ຽນ​ແປງ​, ກໍາ​ນົດ​ຈຸດ​ຢຸດ​,
ແລະການດໍາເນີນການອື່ນໆໂດຍປົກກະຕິແລ້ວພົບຢູ່ໃນເຄື່ອງດີບັກສັນຍາລັກ.

ນອກນັ້ນທ່ານຍັງສາມາດໃຊ້ Devel::REPL ເຊິ່ງເປັນແກະແບບໂຕ້ຕອບສໍາລັບ Perl, ເປັນທີ່ຮູ້ຈັກທົ່ວໄປເປັນ
REPL - ອ່ານ, ປະເມີນ, ພິມ, Loop. ມັນສະຫນອງຄຸນນະສົມບັດທີ່ເປັນປະໂຫຍດຕ່າງໆ.

ວິທີການ do I ຊອກຫາ ທີ່ ໂມດູນ ມີ ການຕິດຕັ້ງ on my ລະບົບ?
ຈາກເສັ້ນຄໍາສັ່ງ, ທ່ານສາມາດນໍາໃຊ້ປຸ່ມ "-l" ຂອງຄໍາສັ່ງ "cpan":

$ cpan -l

ທ່ານຍັງສາມາດໃຊ້ປຸ່ມ "-a" ຂອງ "cpan" ເພື່ອສ້າງໄຟລ໌ autobundle ທີ່ "CPAN.pm"
ເຂົ້າໃຈ ແລະສາມາດໃຊ້ເພື່ອຕິດຕັ້ງຄືນໃໝ່ທຸກໂມດູນ:

$ cpan -a

ພາຍໃນໂຄງການ Perl, ທ່ານສາມາດໃຊ້ ExtUtils:: ຕິດຕັ້ງໂມດູນເພື່ອສະແດງການຕິດຕັ້ງທັງຫມົດ
ການແຜ່ກະຈາຍ, ເຖິງແມ່ນວ່າມັນສາມາດໃຊ້ເວລາເລັກນ້ອຍເພື່ອເຮັດ magic ຂອງມັນ. ຫ້ອງສະຫມຸດມາດຕະຖານທີ່
ມາພ້ອມກັບ Perl ພຽງແຕ່ສະແດງໃຫ້ເຫັນເປັນ "Perl" (ເຖິງແມ່ນວ່າທ່ານສາມາດໄດ້ຮັບເຫຼົ່ານັ້ນ
ໂມດູນ::CoreList).

ໃຊ້ ExtUtils::ຕິດຕັ້ງ;

$inst = ExtUtils ຂອງຂ້ອຍ::Installed->new();
my @modules = $inst->modules();

ຖ້າທ່ານຕ້ອງການລາຍຊື່ໄຟລ໌ Perl module ທັງຫມົດ, ທ່ານສາມາດນໍາໃຊ້ File::Find::Rule:

ໃຊ້ File::Find::Rule;

my @files = ໄຟລ໌::ຊອກຫາ::ກົດລະບຽບ->
extras({ຕິດຕາມ => 1})->
file()->
ຊື່('*.pm')->
ໃນ(@INC)
;

ຖ້າທ່ານບໍ່ມີໂມດູນນັ້ນ, ທ່ານສາມາດເຮັດສິ່ງດຽວກັນກັບ File::Find ເຊິ່ງເປັນສ່ວນຫນຶ່ງຂອງ
ຫ້ອງ​ສະ​ຫມຸດ​ມາດ​ຕະ​ຖານ​:

ໃຊ້ໄຟລ໌::ຊອກຫາ;
@files ຂອງຂ້ອຍ;

ຊອກຫາ(
{
ຕ້ອງການ => ຍ່ອຍ {
push @files, $File::ຊອກຫາ::fullname
ຖ້າ -f $File::ຊອກຫາ::ຊື່ເຕັມ && /\.pm$/
},
ຕິດຕາມ => 1,
follow_skip => 2,
},
@INC
);

ພິມເຂົ້າຮ່ວມ "\n", @files;

ຖ້າທ່ານພຽງແຕ່ຕ້ອງການກວດເບິ່ງຢ່າງໄວວາເພື່ອເບິ່ງວ່າໂມດູນມີຢູ່, ທ່ານສາມາດກວດເບິ່ງມັນ
ເອກະສານ. ຖ້າທ່ານສາມາດອ່ານເອກະສານໄດ້, ໂມດູນຈະຕິດຕັ້ງຫຼາຍທີ່ສຸດ. ຖ້າ
ທ່ານບໍ່ສາມາດອ່ານເອກະສານ, ໂມດູນອາດຈະບໍ່ມີ (ໃນກໍລະນີທີ່ຫາຍາກ):

$ perldoc Module::ຊື່

ນອກນັ້ນທ່ານຍັງສາມາດພະຍາຍາມລວມເອົາໂມດູນຢູ່ໃນເສັ້ນດຽວເພື່ອເບິ່ງວ່າ perl ພົບມັນ:

$ perl -MModule::ຊື່ -e1

(ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ບໍ່​ໄດ້​ຮັບ "ບໍ່​ສາ​ມາດ​ຊອກ​ຫາ ... ໃນ @INC​" ຂໍ້​ຄວາມ​ຜິດ​ພາດ Perl ໄດ້​ພົບ​ເຫັນ​.
ຊື່ໂມດູນທີ່ເຈົ້າຂໍ.)

ວິທີການ do I debug my Perl ໂຄງການ?
(ປະກອບສ່ວນໂດຍ brian d foy)

ກ່ອນທີ່ທ່ານຈະເຮັດຫຍັງອີກ, ເຈົ້າສາມາດຊ່ວຍຕົນເອງໄດ້ໂດຍການຮັບປະກັນວ່າເຈົ້າໃຫ້ Perl ບອກເຈົ້າ
ກ່ຽວກັບພື້ນທີ່ບັນຫາໃນລະຫັດຂອງທ່ານ. ໂດຍການເປີດການເຕືອນໄພ ແລະຂໍ້ຈຳກັດ, ທ່ານສາມາດອອກໄປໄດ້
ບັນຫາຈໍານວນຫຼາຍກ່ອນທີ່ມັນຈະໃຫຍ່ເກີນໄປ. ທ່ານສາມາດຊອກຫາເພີ່ມເຕີມກ່ຽວກັບການເຫຼົ່ານີ້ຢ່າງເຂັ້ມງວດແລະ
ຄຳ ເຕືອນ.

#!/usr/bin/perl
ໃຊ້ຢ່າງເຄັ່ງຄັດ;
ການນໍາໃຊ້ຄໍາເຕືອນ;

ນອກເຫນືອຈາກນັ້ນ, debugger ທີ່ງ່າຍດາຍທີ່ສຸດແມ່ນຫນ້າທີ່ "ພິມ". ໃຊ້ມັນເພື່ອເບິ່ງຄ່າເປັນ
ທ່ານ​ດໍາ​ເນີນ​ການ​ໂຄງ​ການ​ຂອງ​ທ່ານ​:

ພິມ STDERR "ຄ່າແມ່ນ [$value]\n";

ຂໍ້ມູນ::ໂມດູນ Dumper ສາມາດພິມໂຄງສ້າງຂໍ້ມູນ Perl ໄດ້ຢ່າງສວຍງາມ:

ໃຊ້ຂໍ້ມູນ::Dumper qw(Dumper);
ພິມ STDERR "The hash ແມ່ນ". dumper(\%hash ) . "\n";

Perl ມາພ້ອມກັບຕົວແກ້ບັນຫາແບບໂຕ້ຕອບ, ທີ່ທ່ານສາມາດເລີ່ມຕົ້ນດ້ວຍປຸ່ມ "-d". ມັນ
ອະທິບາຍຢ່າງເຕັມສ່ວນໃນ perldebug.

ຖ້າທ່ານຕ້ອງການການໂຕ້ຕອບຜູ້ໃຊ້ແບບກາຟິກແລະທ່ານມີ Tk, ທ່ານສາມາດນໍາໃຊ້ "ptkdb". ມັນເປີດຢູ່
CPAN ແລະສາມາດໃຊ້ໄດ້ຟຣີ.

ຖ້າທ່ານຕ້ອງການບາງສິ່ງບາງຢ່າງທີ່ຊັບຊ້ອນແລະສາມາດຄວບຄຸມໄດ້, Leon Brocard's Devel::ebug
(ທີ່ທ່ານສາມາດໂທຫາດ້ວຍປຸ່ມ "-D" ເປັນ "-Debug") ໃຫ້ທ່ານມີ hook ທີ່ມີໂປຼແກຼມ.
ເຂົ້າໄປໃນທຸກສິ່ງທີ່ທ່ານຈໍາເປັນຕ້ອງຂຽນຂອງທ່ານເອງ (ໂດຍບໍ່ມີຄວາມເຈັບປວດແລະຄວາມທຸກທໍລະມານຫຼາຍເກີນໄປ).

ທ່ານຍັງສາມາດໃຊ້ debugger ການຄ້າເຊັ່ນ Affrus (Mac OS X), Komodo ຈາກ Activestate
(Windows ແລະ Mac OS X), ຫຼື EPIC (ແພລະຕະຟອມສ່ວນໃຫຍ່).

ວິທີການ do I ຂໍ້​ມູນ my Perl ໂຄງການ?
(ປະກອບໂດຍ brian d foy, ອັບເດດ ວັນສຸກ ວັນທີ 25 ກໍລະກົດ 12:22:26 PDT 2008)

namespace "Devel" ມີຫຼາຍໂມດູນທີ່ທ່ານສາມາດນໍາໃຊ້ເພື່ອ profile ໂປຼແກຼມ Perl ຂອງທ່ານ.

The Devel::NYTProf (New York Times Profiler) ເຮັດທັງຄໍາຖະແຫຼງແລະການ profiler ຍ່ອຍ.
ມັນສາມາດໃຊ້ໄດ້ຈາກ CPAN ແລະທ່ານຍັງເອີ້ນມັນດ້ວຍປຸ່ມ "-d":

perl -d:NYTProf some_perl.pl

ມັນສ້າງຖານຂໍ້ມູນຂອງຂໍ້ມູນໂປຣໄຟລ໌ທີ່ທ່ານສາມາດປ່ຽນເປັນບົດລາຍງານ. ໄດ້
ຄໍາສັ່ງ "nytprofhtml" ປ່ຽນຂໍ້ມູນເປັນບົດລາຍງານ HTML ທີ່ຄ້າຍຄືກັບ Devel::Cover
ລາຍງານ:

nytprofhtml

ທ່ານອາດຈະສົນໃຈໃນການໃຊ້ Benchmark ເພື່ອວັດແທກ ແລະປຽບທຽບຂໍ້ຫຍໍ້ຂອງລະຫັດ.

ທ່ານສາມາດອ່ານເພີ່ມເຕີມກ່ຽວກັບ profileing ໃນ ດໍາເນີນໂຄງການ Perl, ບົດທີ 20, ຫຼື Mastering Perl,
ບົດທີ 5.

perldebguts ເອກະສານການສ້າງຕົວດີບັກທີ່ກໍາຫນົດເອງຖ້າທ່ານຕ້ອງການສ້າງປະເພດພິເສດ
ໂປຣໄຟລ. brian d foy ອະທິບາຍຂະບວນການໃນ ໄດ້ Perl ວາລະສານ, "ການສ້າງ Perl
Debugger",http://www.ddj.com/184404522> , ແລະ "Profiling in Perl"
<http://www.ddj.com/184404580>.

Perl.com ມີສອງບົດຄວາມທີ່ຫນ້າສົນໃຈກ່ຽວກັບ profileing: "Profiling Perl", ໂດຍ Simon Cozens,
<http://www.perl.com/lpt/a/850> ແລະ "Debugging and Profiling mod_perl Applications", ໂດຍ
Frank Wiles,http://www.perl.com/pub/a/2006/02/09/debug_mod_perl.html>.

Randal L. Schwartz ຂຽນກ່ຽວກັບການສ້າງໂປຣໄຟລ໌ໃນ "ການເລັ່ງໂຄງການ Perl ຂອງທ່ານ" ສໍາລັບ Unix
ການທົບທວນຄືນ,http://www.stonehenge.com/merlyn/UnixReview/col49.html> , ແລະ "Profileing in
Template Toolkit ຜ່ານ Overriding" ສໍາລັບ Linux ວາລະສານ,
<http://www.stonehenge.com/merlyn/LinuxMag/col75.html>.

ວິທີການ do I ອ້າງອີງຂ້າມ my Perl ໂຄງການ?
ໂມດູນ B::Xref ສາມາດຖືກນໍາໃຊ້ເພື່ອສ້າງບົດລາຍງານການອ້າງອີງຂ້າມສໍາລັບໂຄງການ Perl.

perl -MO=Xref[,OPTIONS] scriptname.plx

Is ມີ a pretty-printer (ຮູບແບບ) ສໍາລັບການ Perl?
Perl::Tidy ມາພ້ອມກັບ perl script perltidy ເຊິ່ງ indents ແລະ formats Perl scripts ກັບ
ເຮັດໃຫ້ມັນງ່າຍຕໍ່ການອ່ານໂດຍການພະຍາຍາມປະຕິບັດຕາມກົດລະບຽບຂອງ perlstyle. ຖ້າທ່ານຂຽນ
Perl, ຫຼືໃຊ້ເວລາຫຼາຍອ່ານ Perl, ທ່ານອາດຈະເຫັນວ່າມັນເປັນປະໂຫຍດ.

ແນ່ນອນ, ຖ້າທ່ານພຽງແຕ່ປະຕິບັດຕາມຄໍາແນະນໍາໃນ perlstyle, ທ່ານບໍ່ຈໍາເປັນຕ້ອງ
ປະຕິຮູບ. ນິໄສຂອງການຈັດຮູບແບບລະຫັດຂອງທ່ານໃນເວລາທີ່ທ່ານຂຽນມັນຈະຊ່ວຍປ້ອງກັນແມງໄມ້. ຂອງເຈົ້າ
ບັນນາທິການສາມາດແລະຄວນຊ່ວຍທ່ານໃນເລື່ອງນີ້. perl-mode ຫຼື cperl-mode ໃໝ່ກວ່າສໍາລັບ emacs ສາມາດ
ສະຫນອງການຊ່ວຍເຫຼືອຈໍານວນທີ່ໂດດເດັ່ນດ້ວຍລະຫັດສ່ວນໃຫຍ່ (ແຕ່ບໍ່ແມ່ນທັງຫມົດ), ແລະແມ້ກະທັ້ງຫນ້ອຍ
ບັນນາທິການໂຄງການສາມາດໃຫ້ການຊ່ວຍເຫຼືອທີ່ສໍາຄັນ. Tom Christiansen ແລະອື່ນໆຈໍານວນຫຼາຍ
ຜູ້ໃຊ້ VI ສາບານໂດຍການຕັ້ງຄ່າຕໍ່ໄປນີ້ໃນ vi ແລະໂຄນຂອງມັນ:

ຕັ້ງ ai sw=4
ແຜນທີ່! ^O {^M}^[O^T

ເອົາໃສ່ໃນຂອງເຈົ້າ .exrc ໄຟລ໌ (ການທົດແທນຕົວອັກສອນ cart ດ້ວຍຕົວອັກສອນຄວບຄຸມ) ແລະ
ຫ່າງເຈົ້າໄປ. ໃນໂໝດແຊກ, ^T ແມ່ນສຳລັບການຫຍໍ້ໜ້າ, ^D ແມ່ນສຳລັບການຍົກເລີກການຫຍໍ້ໜ້າ, ແລະ ^O ແມ່ນສຳລັບ
blockdenting - ດັ່ງທີ່ມັນແມ່ນ. ຕົວຢ່າງທີ່ສົມບູນກວ່າ, ມີຄໍາເຫັນ, ສາມາດພົບໄດ້ທີ່
<http://www.cpan.org/authors/id/TOMC/scripts/toms.exrc.gz>

Is ມີ an ທີ່ນີ້ or Windows Perl ບັນນາທິການ?
ໂປຼແກຼມ Perl ແມ່ນພຽງແຕ່ຂໍ້ຄວາມທໍາມະດາ, ດັ່ງນັ້ນບັນນາທິການໃດກໍ່ຕາມຈະເຮັດ.

ຖ້າທ່ານຢູ່ໃນ Unix, ທ່ານມີ IDE ແລ້ວ - Unix ຕົວຂອງມັນເອງ. ປັດຊະຍາ Unix ແມ່ນ
ປັດຊະຍາຂອງເຄື່ອງມືຂະຫນາດນ້ອຍຈໍານວນຫນຶ່ງທີ່ແຕ່ລະຄົນເຮັດສິ່ງຫນຶ່ງແລະເຮັດໄດ້ດີ. ມັນຄ້າຍຄືກັບ ກ
ກ່ອງເຄື່ອງມືຊ່າງໄມ້.

ຖ້າທ່ານຕ້ອງການ IDE, ໃຫ້ກວດເບິ່ງຕໍ່ໄປນີ້ (ຕາມລໍາດັບຕົວອັກສອນ, ບໍ່ແມ່ນຄໍາສັ່ງຂອງຄວາມຕ້ອງການ):

ອຸປະລາຄາ
<http://e-p-i-c.sf.net/>

ໂຄງການປະສົມປະສານ Eclipse Perl ປະສົມປະສານການແກ້ໄຂ/ດີບັກ Perl ກັບ Eclipse.

ວິສະວະກໍາ
<http://www.enginsite.com/>

Perl Editor ໂດຍ EngInSite ແມ່ນສະພາບແວດລ້ອມການພັດທະນາແບບປະສົມປະສານ (IDE) ສໍາລັບ
ການສ້າງ, ການທົດສອບ, ແລະ debugging Perl scripts; ເຄື່ອງມືທີ່ເຮັດວຽກຢູ່ໃນ Windows
9x/NT/2000/XP ຫຼືຫຼັງຈາກນັ້ນ.

ເຄບຣາ
<http://kephra.sf.net>

ບັນນາທິການ GUI ຂຽນໃນ Perl ໂດຍໃຊ້ wxWidgets ແລະ Scintilla ທີ່ມີຂະຫນາດນ້ອຍກວ່າ
ຄຸນ​ລັກ​ສະ​ນະ. ຈຸດປະສົງສໍາລັບ UI ໂດຍອີງໃສ່ຫຼັກການ Perl ເຊັ່ນ TIMTOWTDI ແລະ "ສິ່ງທີ່ງ່າຍ
ຄວນ​ເປັນ​ເລື່ອງ​ງ່າຍ, ສິ່ງ​ຍາກ​ຄວນ​ເປັນ​ໄປ​ໄດ້.”

Komodo
<http://www.ActiveState.com/Products/Komodo/>

ActiveState's cross-platform (ໃນເດືອນຕຸລາ 2004, ນັ້ນແມ່ນ Windows, Linux, ແລະ Solaris),
IDE ຫຼາຍພາສາມີການສະຫນັບສະຫນູນ Perl, ລວມທັງຕົວແກ້ບັນຫາການສະແດງອອກປົກກະຕິແລະ
ການດີບັກທາງໄກ.

Notepad ++
<http://notepad-plus.sourceforge.net/>

ເປີດ Perl IDE
<http://open-perl-ide.sourceforge.net/>

Open Perl IDE ແມ່ນສະພາບແວດລ້ອມການພັດທະນາແບບປະສົມປະສານສໍາລັບການຂຽນແລະການດີບັກ Perl
ສະຄຣິບທີ່ມີການແຈກຢາຍ ActivePerl ຂອງ ActiveState ພາຍໃຕ້ Windows 95/98/NT/2000.

OptiPerl
<http://www.optiperl.com/>

OptiPerl ເປັນ Windows IDE ທີ່​ມີ​ສະ​ພາບ​ແວດ​ລ້ອມ CGI ຈໍາ​ລອງ, ລວມ​ທັງ debugger ແລະ
ບັນນາທິການເນັ້ນ syntax.

ພຣະບິດາ
<http://padre.perlide.org/>

Padre ແມ່ນ IDE ຂ້າມເວທີສໍາລັບ Perl ຂຽນໃນ Perl ໂດຍໃຊ້ wxWidgets ເພື່ອສະຫນອງ
ລັກສະນະແລະຄວາມຮູ້ສຶກພື້ນເມືອງ. ມັນເປັນແຫຼ່ງເປີດພາຍໃຕ້ໃບອະນຸຍາດສິລະປະ. ມັນເປັນຫນຶ່ງໃນ
Perl IDEs ໃໝ່ກວ່າ.

PerlBuilder
<http://www.solutionsoft.com/perl.htm>

PerlBuilder ເປັນສະພາບແວດລ້ອມການພັດທະນາປະສົມປະສານສໍາລັບ Windows ທີ່ສະຫນັບສະຫນູນ Perl
ການພັດທະນາ.

visiPerl+
<http://helpconsulting.net/visiperl/index.html>

ຈາກການຊ່ວຍເຫຼືອທີ່ປຶກສາ, ສໍາລັບ Windows.

Visual Perl
<http://www.activestate.com/Products/Visual_Perl/>

Visual Perl ເປັນ Visual Studio.NET plug-in ຈາກ ActiveState.

Zeus
<http://www.zeusedit.com/lookmain.html>

Zeus ສໍາລັບ Windows ເປັນຕົວແກ້ໄຂຫຼາຍພາສາ Win32 ອື່ນ / IDE ທີ່ມາພ້ອມກັບການສະຫນັບສະຫນູນ
ສໍາລັບ Perl.

ສໍາລັບບັນນາທິການ: ຖ້າທ່ານຢູ່ໃນ Unix ທ່ານອາດຈະມີ vi ຫຼື vi clone ແລ້ວ, ແລະອາດຈະເປັນ.
emacs ຄືກັນ, ດັ່ງນັ້ນທ່ານອາດຈະບໍ່ຈໍາເປັນຕ້ອງດາວໂຫລດອັນໃດ. ໃນ emacs ໃດ cperl-mode (Mx
cperl-mode) ໃຫ້ທ່ານບາງທີອາດມີຮູບແບບການແກ້ໄຂ Perl ທີ່ດີທີ່ສຸດໃນບັນນາທິການໃດໆ.

ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ກໍາ​ລັງ​ໃຊ້ Windows​, ທ່ານ​ສາ​ມາດ​ໃຊ້​ບັນ​ນາ​ທິ​ການ​ໃດ​ຫນຶ່ງ​ທີ່​ເຮັດ​ໃຫ້​ທ່ານ​ເຮັດ​ວຽກ​ຮ່ວມ​ກັບ​ຂໍ້​ຄວາມ​ທໍາ​ມະ​ດາ​, ເຊັ່ນ​
ເປັນ NotePad ຫຼື WordPad. ໂປເຊດເຊີ Word, ເຊັ່ນ Microsoft Word ຫຼື WordPerfect, ໂດຍປົກກະຕິ
ບໍ່ໄດ້ເຮັດວຽກນັບຕັ້ງແຕ່ພວກເຂົາໃສ່ທຸກປະເພດຂອງຂໍ້ມູນເບື້ອງຫລັງ, ເຖິງແມ່ນວ່າບາງ
ອະນຸຍາດໃຫ້ທ່ານສາມາດບັນທຶກໄຟລ໌ເປັນ "ຂໍ້ຄວາມເທົ່ານັ້ນ". ທ່ານຍັງສາມາດດາວໂຫລດຕົວແກ້ໄຂຂໍ້ຄວາມທີ່ຖືກອອກແບບ
ໂດຍສະເພາະສໍາລັບການຂຽນໂປລແກລມ, ເຊັ່ນ Textpad (http://www.textpad.com/> ) ແລະ UltraEdit
(http://www.ultraedit.com/> ), ແລະອື່ນໆ.

ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ກໍາ​ລັງ​ໃຊ້ MacOS​, ມີ​ຄວາມ​ກັງ​ວົນ​ດຽວ​ກັນ​ນໍາ​ໃຊ້​. MacPerl (ສໍາລັບສະພາບແວດລ້ອມຄລາສສິກ) ມາ
ກັບບັນນາທິການງ່າຍດາຍ. ບັນນາທິການພາຍນອກທີ່ນິຍົມແມ່ນ BBEdit (
<http://www.barebones.com/products/bbedit/> ) ຫຼື Alpha (
<http://www.his.com/~jguyer/Alpha/Alpha8.html> ). ຜູ້ໃຊ້ MacOS X ສາມາດໃຊ້ຕົວແກ້ໄຂ Unix ເປັນ
ດີ.

GNU Emacs
<http://www.gnu.org/software/emacs/windows/ntemacs.html>

MicroEMACS
<http://www.microemacs.de/>

XEmacs
<http://www.xemacs.org/Download/index.html>

ເຈດhttp://space.mit.edu/~davis/jed/>

ຫຼື vi clone ເຊັ່ນ

Vimhttp://www.vim.org/>

ໂຫດ
<http://dickey.his.com/vile/vile.html>

ຕໍ່ໄປນີ້ແມ່ນ Win32 multilanguage editor/IDEs ທີ່ຮອງຮັບ Perl:

MultiEdit
<http://www.MultiEdit.com/>

SlickEdit
<http://www.slickedit.com/>

ເນື້ອໃນ
<http://www.contexteditor.org/>

ນອກນັ້ນຍັງມີ toyedit Text widget based editor ທີ່ຂຽນໃນ Perl ທີ່ແຈກຢາຍດ້ວຍ
ໂມດູນ Tk ໃນ CPAN. ptkdb (http://ptkdb.sourceforge.net/> ) ເປັນ Perl/Tk-based
debugger ທີ່ເຮັດຫນ້າທີ່ເປັນສະພາບແວດລ້ອມການພັດທະນາຂອງການຈັດລຽງ. Perl Composer (
<http://perlcomposer.sourceforge.net/> ) ເປັນ IDE ສໍາລັບການສ້າງ Perl/Tk GUI.

ນອກເໜືອໄປຈາກບັນນາທິການ / IDE ເຈົ້າອາດຈະສົນໃຈກັບສະພາບແວດລ້ອມຂອງແກະທີ່ມີປະສິດທິພາບກວ່າ
ສໍາລັບ Win32. ທາງເລືອກຂອງທ່ານປະກອບມີ

bash
ຈາກຊຸດ Cygwin (http://cygwin.com/>)

zshhttp://www.zsh.org/>

Cygwin ຖືກຄຸ້ມຄອງໂດຍ GNU General Public License (ແຕ່ວ່າມັນບໍ່ຄວນສໍາຄັນສໍາລັບ Perl
ໃຊ້). Cygwin ປະກອບມີ (ນອກ ເໜືອ ຈາກແກະ) ຊຸດມາດຕະຖານ Unix
ເຄື່ອງ​ມື​ອຸ​ປະ​ກອນ​.

BBEdit ແລະ TextWrangler
ແມ່ນຕົວແກ້ໄຂຂໍ້ຄວາມສຳລັບ OS X ທີ່ມີໂໝດຄວາມອ່ອນໄຫວ Perl (
<http://www.barebones.com/> ).

ບ່ອນທີ່ ສາມາດເຮັດໄດ້ I ໄດ້ຮັບ Perl ມະຫາພາກ ສໍາລັບການ vi
ສໍາລັບສະບັບສົມບູນຂອງໄຟລ໌ການຕັ້ງຄ່າ vi ຂອງ Tom Christiansen, ເບິ່ງ
<http://www.cpan.org/authors/Tom_Christiansen/scripts/toms.exrc.gz> , ມາດຕະຖານ
ໄຟລ໌ benchmark ສໍາລັບ vi emulators. ໄຟລ໌ເຮັດວຽກດີທີ່ສຸດກັບ nvi, ຮຸ່ນປັດຈຸບັນຂອງ vi
ອອກຈາກ Berkeley, ເຊິ່ງໂດຍບັງເອີນສາມາດສ້າງໄດ້ດ້ວຍການຝັງຕົວແປພາສາ Perl - ເບິ່ງ
<http://www.cpan.org/src/misc/>.

ບ່ອນທີ່ ສາມາດເຮັດໄດ້ I ໄດ້ຮັບ perl-mode or cperl-mode ສໍາລັບການ emacs?
ນັບຕັ້ງແຕ່ Emacs ຮຸ່ນ 19 patchlevel 22 ຫຼືດັ່ງນັ້ນ, ມີທັງ perl-mode.el ແລະ
ຮອງຮັບ Perl debugger ທີ່ສ້າງຂຶ້ນໃນ. ສິ່ງເຫຼົ່ານີ້ຄວນມາພ້ອມກັບມາດຕະຖານ Emacs 19
ການແຈກຢາຍ.

ໃຫ້ສັງເກດວ່າ perl-mode ຂອງ emacs ຈະເຫມາະສົມກັບ "main'foo" (ຄໍາອ້າງອີງດຽວ), ແລະລັງກິນອາຫານ.
ເພີ່ມການຫຍໍ້ໜ້າ ແລະຈຸດເດັ່ນ. ທ່ານອາດຈະໃຊ້ "main::foo" ໃນລະຫັດ Perl ໃໝ່
ແນວໃດກໍ່ຕາມ, ສະນັ້ນນີ້ບໍ່ຄວນເປັນບັນຫາ.

ສໍາລັບ CPerlMode, ເບິ່ງhttp://www.emacswiki.org/cgi-bin/wiki/CPerlMode>

ວິທີການ ສາມາດເຮັດໄດ້ I ການນໍາໃຊ້ curses ກັບ Perl?
ໂມດູນ Curses ຈາກ CPAN ສະຫນອງການໂຕ້ຕອບໂມດູນວັດຖຸທີ່ສາມາດໂຫຼດໄດ້ແບບໄດນາມິກກັບ a
curses ຫ້ອງສະຫມຸດ. ສາ​ມາດ​ພົບ​ເຫັນ​ຕົວ​ຢ່າງ​ຂະ​ຫນາດ​ນ້ອຍ​ຢູ່​ໃນ​ລະ​ບົບ​
<http://www.cpan.org/authors/Tom_Christiansen/scripts/rep.gz> ; ໂຄງ​ການ​ນີ້​ເຮັດ​ເລ​ື້ມ​ຄືນ a
ຄໍາສັ່ງແລະປັບປຸງຫນ້າຈໍຕາມຄວາມຕ້ອງການ, rendering ຕົວແທນ ps ອາຊູ ຄ້າຍ​ຄື​ກັບ top.

ວິທີການ ສາມາດເຮັດໄດ້ I ຂຽນ a GUI (X, Tk, Gtk, ຯ ລະຯ ) in Perl?
(ປະກອບສ່ວນໂດຍ Ben Morrow)

ມີຫຼາຍໂມດູນທີ່ຊ່ວຍໃຫ້ທ່ານຂຽນ GUIs ໃນ Perl. ຊຸດເຄື່ອງມື GUI ສ່ວນໃຫຍ່ມີ a
ການໂຕ້ຕອບ perl: ບັນຊີລາຍຊື່ທີ່ບໍ່ຄົບຖ້ວນດັ່ງຕໍ່ໄປນີ້.

Tk ນີ້ເຮັດວຽກພາຍໃຕ້ Unix ແລະ Windows, ແລະສະບັບປະຈຸບັນເບິ່ງຄືວ່າບໍ່ດີເຄິ່ງຫນຶ່ງ
ພາຍໃຕ້ Windows ດັ່ງທີ່ມັນເຄີຍໃຊ້. ບາງອົງປະກອບຂອງ gui ຍັງບໍ່ 'ມີຄວາມຮູ້ສຶກ' ທີ່ຖືກຕ້ອງ,
ເຖິງແມ່ນວ່າ. ການໂຕ້ຕອບແມ່ນທໍາມະຊາດຫຼາຍແລະ 'perlish', ເຮັດໃຫ້ມັນງ່າຍຕໍ່ການໃຊ້ໃນຂະຫນາດນ້ອຍ
scripts ທີ່ພຽງແຕ່ຕ້ອງການ gui ງ່າຍດາຍ. ມັນບໍ່ໄດ້ຖືກປັບປຸງໃນໄລຍະສັ້ນ.

Wx ນີ້ແມ່ນການຜູກມັດ Perl ສໍາລັບຊຸດເຄື່ອງມື wxWidgets ຂ້າມເວທີ (
<http://www.wxwidgets.org> ). ມັນເຮັດວຽກພາຍໃຕ້ Unix, Win32 ແລະ Mac OS X, ໂດຍໃຊ້ native
widget (Gtk ພາຍໃຕ້ Unix). ການໂຕ້ຕອບປະຕິບັດຕາມການໂຕ້ຕອບ C ++ ຢ່າງໃກ້ຊິດ, ແຕ່ວ່າ
ເອກະສານແມ່ນເລັກນ້ອຍສໍາລັບຄົນທີ່ບໍ່ຮູ້ຈັກຫ້ອງສະຫມຸດ, ສ່ວນຫຼາຍແມ່ນພຽງແຕ່
ໂດຍອ້າງອີງໃສ່ເອກະສານ C++.

Gtk ແລະ Gtk2
ເຫຼົ່ານີ້ແມ່ນການຜູກມັດ Perl ສໍາລັບຊຸດເຄື່ອງມື Gtk (http://www.gtk.org> ). ການໂຕ້ຕອບ
ມີການປ່ຽນແປງຢ່າງຫຼວງຫຼາຍລະຫວ່າງຮຸ່ນ 1 ແລະ 2 ດັ່ງນັ້ນພວກເຂົາມີໂມດູນ Perl ແຍກຕ່າງຫາກ. ມັນ
ແລ່ນພາຍໃຕ້ Unix, Win32 ແລະ Mac OS X (ປະຈຸບັນມັນຕ້ອງການເຄື່ອງແມ່ຂ່າຍ X ໃນ Mac OS, ແຕ່
ພອດ 'native' ກໍາລັງດໍາເນີນການ), ແລະ widget ມີລັກສະນະດຽວກັນໃນທຸກເວທີ: ie,
ພວກມັນບໍ່ກົງກັບວິດເຈັດພື້ນເມືອງ. ເຊັ່ນດຽວກັນກັບ Wx, ການຜູກມັດ Perl ປະຕິບັດຕາມ C API
ຢ່າງໃກ້ຊິດ, ແລະເອກະສານຮຽກຮ້ອງໃຫ້ທ່ານອ່ານເອກະສານ C ເພື່ອເຂົ້າໃຈ
ມັນ.

Win32::GUI
ນີ້ສະຫນອງການເຂົ້າເຖິງສ່ວນໃຫຍ່ຂອງ Win32 GUI widget ຈາກ Perl. ແນ່ນອນ, ມັນເທົ່ານັ້ນ
ແລ່ນພາຍໃຕ້ Win32, ແລະໃຊ້ widget ພື້ນເມືອງ. ການໂຕ້ຕອບ Perl ບໍ່ໄດ້ປະຕິບັດຕາມຢ່າງແທ້ຈິງ
ການໂຕ້ຕອບ C: ມັນໄດ້ຖືກເຮັດໃຫ້ Perlish ຫຼາຍ, ແລະເອກະສານແມ່ນດີ pretty.
ສິ່ງທີ່ກ້າວຫນ້າທາງດ້ານຫຼາຍອາດຈະຕ້ອງການຄວາມຄຸ້ນເຄີຍກັບ C Win32 APIs, ຫຼືອ້າງອີງເຖິງ
MSDN.

CamelBones
CamelBones (http://camelbones.sourceforge.net> ) ເປັນການໂຕ້ຕອບ Perl ກັບ Mac OS X ຂອງ
ຊຸດເຄື່ອງມື Cocoa GUI, ແລະດັ່ງນັ້ນສາມາດຖືກນໍາໃຊ້ເພື່ອຜະລິດ GUI ພື້ນເມືອງໃນ Mac OS X.
ບໍ່ແມ່ນຢູ່ໃນ CPAN, ຍ້ອນວ່າມັນຮຽກຮ້ອງໃຫ້ມີກອບທີ່ CPAN.pm ບໍ່ຮູ້ວິທີຕິດຕັ້ງ, ແຕ່
ການຕິດຕັ້ງແມ່ນຜ່ານຕົວຕິດຕັ້ງຊຸດ OSX ມາດຕະຖານ. Perl API ແມ່ນ, ອີກເທື່ອຫນຶ່ງ, ຫຼາຍ
ໃກ້ກັບ ObjC API ມັນຖືກຫໍ່, ແລະເອກະສານພຽງແຕ່ບອກທ່ານວິທີການ
ແປຈາກຫນຶ່ງໄປຫາອີກ.

Qt ມີການໂຕ້ຕອບ Perl ກັບຊຸດເຄື່ອງມື Qt ຂອງ TrollTech, ແຕ່ມັນເບິ່ງຄືວ່າບໍ່ມີ
ຮັກສາໄວ້.

Athena
Sx ແມ່ນການໂຕ້ຕອບກັບຊຸດ widget Athena ທີ່ມາພ້ອມກັບ X, ແຕ່ອີກເທື່ອຫນຶ່ງມັນປາກົດ
ບໍ່ໄດ້ຖືກນໍາໃຊ້ຫຼາຍໃນປັດຈຸບັນ.

ວິທີການ ສາມາດເຮັດໄດ້ I ເຮັດໃຫ້ my Perl ໂຄງການ ແລ່ນ ໄວກວ່າ?
ວິທີທີ່ດີທີ່ສຸດທີ່ຈະເຮັດຄືການມາກັບ algorithm ທີ່ດີກວ່າ. ນີ້ມັກຈະສາມາດເຮັດໃຫ້ເປັນ
ຄວາມແຕກຕ່າງຢ່າງຫຼວງຫຼາຍ. ປື້ມຂອງ Jon Bentley ດໍາເນີນໂຄງການ ການ​ບໍ​ລິ​ການ (ນັ້ນບໍ່ແມ່ນການສະກົດຜິດ!)
ມີຄໍາແນະນໍາທີ່ດີກ່ຽວກັບການເພີ່ມປະສິດທິພາບ, ເຊັ່ນກັນ. ຄໍາແນະນໍາກ່ຽວກັບການ benchmarking boils ລົງໄປ: benchmark
ແລະໂປຣໄຟລ໌ເພື່ອໃຫ້ແນ່ໃຈວ່າທ່ານກໍາລັງເພີ່ມປະສິດທິພາບສ່ວນທີ່ເຫມາະສົມ, ຊອກຫາວິທີທີ່ດີກວ່າ
ແທນ​ທີ່​ຈະ​ປັບ​ລະ​ຫັດ​ຂອງ​ທ່ານ microtuning, ແລະ​ໃນ​ເວ​ລາ​ທີ່​ອື່ນໆ​ທັງ​ຫມົດ​ບໍ່​ໄດ້​ພິ​ຈາ​ລະ​ນາ​ພຽງ​ແຕ່​ການ​ຊື້​ໄວ​ຂຶ້ນ
ຮາດແວ. ເຈົ້າອາດຈະຕ້ອງການອ່ານຄໍາຕອບຂອງຄໍາຖາມກ່ອນຫນ້ານີ້ "ຂ້ອຍຈະເຮັດແນວໃດ
ໂປລແກລມ Perl ຂອງຂ້ອຍບໍ?” ຖ້າເຈົ້າຍັງບໍ່ໄດ້ເຮັດແນວນັ້ນ.

ວິທີການທີ່ແຕກຕ່າງກັນແມ່ນການໂຫຼດລະຫັດ Perl ທີ່ບໍ່ຄ່ອຍໄດ້ໃຊ້ອັດຕະໂນມັດ. ເບິ່ງ AutoSplit ແລະ
ໂມດູນ AutoLoader ໃນການແຈກຢາຍມາດຕະຖານສໍາລັບການນັ້ນ. ຫຼືທ່ານສາມາດຊອກຫາສະຖານທີ່
bottleneck ແລະຄິດກ່ຽວກັບການຂຽນພຽງແຕ່ສ່ວນນັ້ນໃນ C, ວິທີການທີ່ພວກເຮົາເຄີຍໃຊ້ເວລາ
ກະຕຸກໃນລະຫັດ C ແລະຂຽນພວກມັນຢູ່ໃນຕົວປະກອບ. ຄ້າຍຄືກັບການຂຽນຄືນໃຫມ່ໃນ C, ໂມດູນທີ່
ມີພາກສ່ວນທີ່ສໍາຄັນສາມາດຂຽນໃນ C (ຕົວຢ່າງ, ໂມດູນ PDL ຈາກ CPAN).

ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ປະ​ຈຸ​ບັນ​ການ​ເຊື່ອມ​ຕໍ່ perl ຂອງ​ທ່ານ​ປະ​ຕິ​ບັດ​ກັບ​ການ​ແບ່ງ​ປັນ​ libc.so, ທ່ານມັກຈະສາມາດໄດ້ຮັບ a
ຜົນປະໂຫຍດການປະຕິບັດ 10-25% ໂດຍການສ້າງມັນໃຫມ່ເພື່ອເຊື່ອມຕໍ່ກັບ libc.a static ແທນ. ນີ້
ຈະເຮັດໃຫ້ການປະຕິບັດ perl ທີ່ໃຫຍ່ກວ່າ, ແຕ່ໂຄງການ Perl ຂອງທ່ານ (ແລະນັກຂຽນໂປລແກລມ) ອາດຈະຂໍຂອບໃຈທ່ານ
ສໍາລັບມັນ. ເບິ່ງ ການຕິດຕັ້ງ ໄຟລ໌ໃນການແຈກຢາຍແຫຼ່ງສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ.

ໂຄງການ undump ແມ່ນຄວາມພະຍາຍາມວັດຖຸບູຮານທີ່ຈະເລັ່ງໂຄງການ Perl ໂດຍການເກັບຮັກສາໄວ້ແລ້ວ -
ລວບລວມແບບຟອມໃສ່ແຜ່ນ. ນີ້​ບໍ່​ແມ່ນ​ທາງ​ເລືອກ​ທີ່​ເປັນ​ໄປ​ໄດ້​, ເພາະ​ວ່າ​ມັນ​ໄດ້​ເຮັດ​ວຽກ​ພຽງ​ແຕ່​ກ່ຽວ​ກັບ​ການ​ຈໍາ​ນວນ​ຫນຶ່ງ​
ສະຖາປັດຕະຍະກໍາ, ແລະບໍ່ແມ່ນການແກ້ໄຂທີ່ດີ.

ວິທີການ ສາມາດເຮັດໄດ້ I ເຮັດໃຫ້ my Perl ໂຄງການ ໃຊ້ເວລາ ຫນ້ອຍ ຄວາມຊົງຈໍາ?
ໃນເວລາທີ່ມັນມາກັບການຄ້າທີ່ໃຊ້ເວລາພື້ນທີ່, Perl ເກືອບສະເຫມີມັກທີ່ຈະຖິ້ມຄວາມຊົງຈໍາຢູ່ທີ່
ບັນຫາ. Scalars ໃນ Perl ໃຊ້ຫນ່ວຍຄວາມຈໍາຫຼາຍກ່ວາ strings ໃນ C, arrays ໃຊ້ເວລາຫຼາຍກວ່ານັ້ນ,
ແລະ hashes ໃຊ້ຫຼາຍ. ໃນຂະນະທີ່ຍັງມີຫຼາຍຢ່າງທີ່ຕ້ອງເຮັດ, ການປ່ອຍອອກມາເມື່ອບໍ່ດົນມານີ້
ແກ້ໄຂບັນຫາເຫຼົ່ານີ້. ຕົວຢ່າງ, ເປັນຂອງ 5.004, ລະຫັດ hash ຊ້ໍາກັນໄດ້ຖືກແບ່ງປັນລະຫວ່າງ
hashes ທັງຫມົດໂດຍໃຊ້ພວກມັນ, ດັ່ງນັ້ນບໍ່ຈໍາເປັນຕ້ອງມີການຈັດສັນ.

ໃນບາງກໍລະນີ, ການນໍາໃຊ້ ຍ່ອຍ() or vec() ເພື່ອຈໍາລອງ arrays ສາມາດເປັນປະໂຫຍດສູງ. ສໍາລັບ
ຕົວຢ່າງ, array ຂອງຫນຶ່ງພັນ boolean ຈະໃຊ້ເວລາຢ່າງຫນ້ອຍ 20,000 bytes ຂອງຊ່ອງ, ແຕ່ມັນ.
ສາມາດປ່ຽນເປັນ vector ນ້ອຍ 125-byte - ເປັນການປະຫຍັດຫນ່ວຍຄວາມຈໍາຢ່າງຫຼວງຫຼາຍ. ມາດຕະຖານ
Tie::SubstrHash module ຍັງສາມາດຊ່ວຍສໍາລັບບາງປະເພດຂອງໂຄງສ້າງຂໍ້ມູນ. ຖ້າເຈົ້າ
ເຮັດວຽກກັບໂຄງສ້າງຂໍ້ມູນຜູ້ຊ່ຽວຊານ (ຕົວຢ່າງ matrices), ໂມດູນທີ່ປະຕິບັດ
ເຫຼົ່ານີ້ຢູ່ໃນ C ອາດຈະໃຊ້ຫນ່ວຍຄວາມຈໍາຫນ້ອຍກວ່າໂມດູນ Perl ທຽບເທົ່າ.

ສິ່ງອື່ນທີ່ຈະພະຍາຍາມແມ່ນການຮຽນຮູ້ວ່າ Perl ຂອງທ່ານຖືກລວບລວມກັບລະບົບ malloc ຫຼື
ກັບ malloc ກໍ່ສ້າງຂອງ Perl. ອັນໃດເປັນອັນໃດ, ລອງໃຊ້ອັນອື່ນເບິ່ງວ່າ
ນີ້ເຮັດໃຫ້ຄວາມແຕກຕ່າງ. ຂໍ້ມູນກ່ຽວກັບ malloc ແມ່ນຢູ່ໃນ ການຕິດຕັ້ງ ໄຟລ໌ໃນແຫຼ່ງ
ການ​ແຜ່​ກະ​ຈາຍ​. ທ່ານສາມາດຊອກຫາວ່າທ່ານກໍາລັງໃຊ້ perl's malloc ໂດຍການພິມ "perl
-V:usemymalloc".

ແນ່ນອນ, ວິທີທີ່ດີທີ່ສຸດທີ່ຈະຊ່ວຍປະຢັດຄວາມຊົງຈໍາແມ່ນເພື່ອບໍ່ເຮັດຫຍັງໃຫ້ມັນເສຍໃນຄັ້ງທໍາອິດ
ສະຖານທີ່. ການປະຕິບັດການຂຽນໂປລແກລມທີ່ດີສາມາດໄປໄດ້ໄກຕໍ່ກັບເລື່ອງນີ້:

ຢ່າລື່ມ!
ຢ່າອ່ານໄຟລ໌ທັງຫມົດເຂົ້າໄປໃນຫນ່ວຍຄວາມຈໍາຖ້າທ່ານສາມາດປຸງແຕ່ງມັນໄດ້ເປັນແຖວ. ຫຼື​ຫຼາຍ​ກວ່າ
ແນ່ນອນ, ໃຊ້ loop ແບບນີ້:

#
# ຄວາມ​ຄິດ​ດີ
#
ໃນຂະນະທີ່ ($line ຂອງຂ້ອຍ = <$file_handle>) {
#...
}

ແທນ​ທີ່​ຈະ​ເປັນ​ນີ້​:

#
# ຄວາມຄິດທີ່ບໍ່ດີ
#
@data ຂອງຂ້ອຍ = <$file_handle>;
foreach (@data) {
#...
}

ເມື່ອໄຟລ໌ທີ່ທ່ານກໍາລັງປະມວນຜົນມີຂະຫນາດນ້ອຍ, ມັນບໍ່ສໍາຄັນຫຼາຍວ່າທ່ານຈະເຮັດແນວໃດ
ມັນ, ແຕ່ມັນເຮັດໃຫ້ມີຄວາມແຕກຕ່າງກັນຢ່າງຫຼວງຫຼາຍເມື່ອພວກເຂົາເລີ່ມໃຫຍ່ຂຶ້ນ.

ໃຊ້ແຜນທີ່ ແລະ grep ເລືອກ
ຈົ່ງຈື່ໄວ້ວ່າທັງແຜນທີ່ແລະ grep ຄາດຫວັງວ່າການໂຕ້ຖຽງ LIST, ດັ່ງນັ້ນການເຮັດສິ່ງນີ້:

@wanted = grep {/pattern/} <$file_handle>;

ຈະເຮັດໃຫ້ໄຟລ໌ທັງຫມົດຖືກ slurped. ສໍາລັບໄຟລ໌ຂະຫນາດໃຫຍ່, ມັນດີກວ່າທີ່ຈະ loop:

ໃນຂະນະທີ່ (<$file_handle>) {
push(@wanted, $_) ຖ້າ /pattern/;
}

ຫຼີກເວັ້ນການວົງຢືມທີ່ບໍ່ຈໍາເປັນແລະ stringification
ຢ່າອ້າງເຖິງສະຕຣິງໃຫຍ່ເວັ້ນເສຍແຕ່ວ່າມີຄວາມຈໍາເປັນຢ່າງແທ້ຈິງ:

$copy = "$large_string" ຂອງຂ້ອຍ;

ເຮັດ 2 ສະບັບຂອງ $large_string (ອັນຫນຶ່ງສໍາລັບ $copy ແລະອີກອັນຫນຶ່ງສໍາລັບວົງຢືມ), ໃນຂະນະທີ່

$copy ຂອງຂ້ອຍ = $large_string;

ພຽງແຕ່ເຮັດສໍາເນົາຫນຶ່ງ.

Ditto ສໍາລັບ stringifying array ຂະຫນາດໃຫຍ່:

{
ທ້ອງຖິ່ນ $, = "\n";
ພິມ @big_array;
}

ມີຄວາມຊົງຈໍາທີ່ມີປະສິດທິພາບຫຼາຍກວ່ານັ້ນ

ພິມເຂົ້າຮ່ວມ "\n", @big_array;

or

{
local $" = "\n";
ພິມ "@big_array";
}

ຜ່ານໂດຍອ້າງອີງ
ຜ່ານ arrays ແລະ hashes ໂດຍອ້າງອີງ, ບໍ່ແມ່ນໂດຍຄ່າ. ສໍາລັບສິ່ງຫນຶ່ງ, ມັນເປັນວິທີດຽວທີ່ຈະ
ຜ່ານຫຼາຍລາຍການ ຫຼື hashes (ຫຼືທັງສອງ) ໃນການໂທດຽວ/ກັບຄືນ. ມັນຍັງຫຼີກເວັ້ນ
ການສ້າງສໍາເນົາຂອງເນື້ອຫາທັງຫມົດ. ນີ້ຮຽກຮ້ອງໃຫ້ມີການຕັດສິນບາງ, ຢ່າງໃດກໍຕາມ, ເນື່ອງຈາກວ່າ
ການ​ປ່ຽນ​ແປງ​ໃດ​ຫນຶ່ງ​ຈະ​ຖືກ​ສົ່ງ​ກັບ​ຄືນ​ໄປ​ບ່ອນ​ຂໍ້​ມູນ​ຕົ້ນ​ສະ​ບັບ​. ຖ້າ​ຫາກ​ວ່າ​ທ່ານ​ກໍ່​ຕ້ອງ​ການ​ທີ່​ຈະ mangle​
(er, ປັບປຸງແກ້ໄຂ) ສໍາເນົາ, ທ່ານຈະຕ້ອງເສຍສະລະຄວາມຊົງຈໍາທີ່ຈໍາເປັນເພື່ອເຮັດໃຫ້ຫນຶ່ງ.

ເຊື່ອມຕໍ່ຕົວແປໃຫຍ່ໃສ່ແຜ່ນດິດ
ສໍາລັບ "ຂະຫນາດໃຫຍ່" ເກັບຮັກສາຂໍ້ມູນ (ເຊັ່ນ: ຈໍານວນທີ່ເກີນຄວາມຈໍາທີ່ມີຢູ່) ພິຈາລະນານໍາໃຊ້ຫນຶ່ງໃນ
ໂມດູນ DB ເພື່ອເກັບຮັກສາມັນຢູ່ໃນແຜ່ນແທນທີ່ຈະຢູ່ໃນ RAM. ນີ້ຈະເຮັດໃຫ້ເກີດການລົງໂທດໃນ
ເວລາເຂົ້າເຖິງ, ແຕ່ວ່າອາດຈະດີກ່ວາການເຮັດໃຫ້ຮາດດິດຂອງທ່ານຖືກກະທົບເນື່ອງຈາກ
ການ​ແລກ​ປ່ຽນ​ອັນ​ໃຫຍ່​ຫຼວງ​.

Is it ປອດໄພ to ການກັບຄືນມາ a ອ້າງອິງ to ທ້ອງຖິ່ນ or lexical ຂໍ້ມູນ?
ແມ່ນແລ້ວ. ລະບົບການເກັບຂີ້ເຫຍື້ອຂອງ Perl ດູແລເລື່ອງນີ້ເພື່ອໃຫ້ທຸກສິ່ງທຸກຢ່າງເຮັດວຽກຢ່າງຖືກຕ້ອງ.

ຍ່ອຍ makeone {
my @a = ( 1.. 10 );
ກັບຄືນ \@a;
}

ສໍາລັບ ( 1 .. 10 ) {
push @many, makeone();
}

ພິມ $many[4][5], "\n";

ພິມ "@many\n";

ວິທີການ ສາມາດເຮັດໄດ້ I ຟຣີ an array or hash so my ໂຄງການ ຫຍໍ້ລົງ?
(ປະກອບໂດຍ Michael Carman)

ປົກກະຕິແລ້ວທ່ານບໍ່ສາມາດ. ຫນ່ວຍຄວາມຈໍາຈັດສັນໃຫ້ lexicals (ie ຂອງຂ້ອຍ() ຕົວແປ) ບໍ່ສາມາດຍຶດຄືນໄດ້
ຫຼືນໍາໃຊ້ຄືນໃຫມ່ເຖິງແມ່ນວ່າພວກເຂົາອອກໄປນອກຂອບເຂດ. ມັນຖືກສະຫງວນໄວ້ໃນກໍລະນີທີ່ຕົວແປກັບຄືນມາ
ຢູ່ໃນຂອບເຂດ. ຫນ່ວຍຄວາມຈໍາທີ່ຈັດສັນໃຫ້ກັບຕົວແປທົ່ວໂລກສາມາດຖືກນໍາໃຊ້ຄືນໃຫມ່ (ພາຍໃນໂຄງການຂອງທ່ານ) ໂດຍ
ການນໍາໃຊ້ undef() ແລະ / ຫຼື ລົບ ().

ໃນລະບົບປະຕິບັດການສ່ວນໃຫຍ່, ຫນ່ວຍຄວາມຈໍາທີ່ຖືກຈັດສັນໃຫ້ກັບໂຄງການບໍ່ສາມາດຖືກສົ່ງຄືນໄປຫາ
ລະບົບ. ດ້ວຍເຫດນີ້, ບາງຄັ້ງບັນດາໂຄງການທີ່ດຳເນີນມາດົນນານແລ້ວ ບາງຄັ້ງມັນກັບຄືນມາ. ບາງປະຕິບັດງານ
ລະບົບ (ໂດຍສະເພາະ, ລະບົບທີ່ໃຊ້ ແຜນທີ່(2) ສໍາລັບການຈັດສັນ chunks ຂະຫນາດໃຫຍ່ຂອງຫນ່ວຍຄວາມຈໍາ) ສາມາດ
ຖອນຄວາມຊົງຈໍາທີ່ບໍ່ໄດ້ໃຊ້ແລ້ວ, ແຕ່ໃນລະບົບດັ່ງກ່າວ, perl ຕ້ອງໄດ້ຮັບການກໍາຫນົດຄ່າແລະ
ລວບລວມເພື່ອນໍາໃຊ້ malloc ຂອງ OS, ບໍ່ແມ່ນ perl.

ໂດຍທົ່ວໄປແລ້ວ, ການຈັດສັນຄວາມຊົງຈຳ ແລະ ການແບ່ງແຍກບໍ່ແມ່ນສິ່ງທີ່ເຈົ້າສາມາດ ຫຼື ຄວນເປັນໄດ້
ເປັນຫ່ວງຫຼາຍໃນ Perl.

ເບິ່ງ "ຂ້ອຍສາມາດເຮັດໃຫ້ໂຄງການ Perl ຂອງຂ້ອຍໃຊ້ຄວາມຊົງຈໍາຫນ້ອຍໄດ້ແນວໃດ?"

ວິທີການ ສາມາດເຮັດໄດ້ I ເຮັດໃຫ້ my CGI script ເພີ່ມເຕີມ ມີປະສິດທິພາບບໍ?
ນອກເຫນືອຈາກມາດຕະການປົກກະຕິທີ່ອະທິບາຍເພື່ອເຮັດໃຫ້ໂຄງການ Perl ທົ່ວໄປໄວຂຶ້ນຫຼືນ້ອຍກວ່າ, a
ໂຄງການ CGI ມີບັນຫາເພີ່ມເຕີມ. ມັນອາດຈະດໍາເນີນການຫຼາຍຄັ້ງຕໍ່ວິນາທີ. ໃຫ້ແຕ່ລະນັ້ນ
ເວລາທີ່ມັນແລ່ນມັນຈະຕ້ອງຖືກລວບລວມຄືນໃຫມ່ແລະມັກຈະຈັດສັນ megabyte ຫຼືຫຼາຍກວ່ານັ້ນ.
ຫນ່ວຍຄວາມຈໍາຂອງລະບົບ, ນີ້ສາມາດເປັນ killer ໄດ້. ສັງ​ລວມ​ເປັນ C ບໍ່ແມ່ນ ໄປ to ຊ່ວຍເຫຼືອ ທ່ານ ເນື່ອງຈາກວ່າ
ຂະບວນການເລີ່ມຕົ້ນຂຶ້ນເທິງຫົວແມ່ນບ່ອນທີ່ຄໍຂວດຢູ່.

ມີສາມວິທີທີ່ນິຍົມກັນເພື່ອຫຼີກເວັ້ນການ overhead ນີ້. ການແກ້ໄຂຫນຶ່ງກ່ຽວຂ້ອງກັບການດໍາເນີນການ
ເຄື່ອງແມ່ຂ່າຍຂອງ Apache HTTP (ມີຢູ່ໃນhttp://www.apache.org/> ) ກັບ mod_perl
ຫຼືໂມດູນ plugin mod_fastcgi.

ດ້ວຍ mod_perl ແລະ Apache::ໂມດູນ Registry (ແຈກຢາຍດ້ວຍ mod_perl), httpd ຈະດໍາເນີນການ.
ດ້ວຍຕົວແປພາສາ Perl ທີ່ຝັງໄວ້ກ່ອນການລວບລວມສະຄຣິບຂອງທ່ານແລະຫຼັງຈາກນັ້ນປະຕິບັດມັນ
ພາຍໃນພື້ນທີ່ທີ່ຢູ່ດຽວກັນໂດຍບໍ່ມີການ forking. ສ່ວນຂະຫຍາຍ Apache ຍັງໃຫ້ການເຂົ້າເຖິງ Perl
ກັບ API ຂອງເຄື່ອງແມ່ຂ່າຍພາຍໃນ, ດັ່ງນັ້ນໂມດູນທີ່ຂຽນໃນ Perl ສາມາດເຮັດໄດ້ພຽງແຕ່ກ່ຽວກັບທຸກໂມດູນ
ຂຽນໃນ C can. ສໍາລັບເພີ່ມເຕີມກ່ຽວກັບ mod_perl, ເບິ່ງhttp://perl.apache.org/>

ດ້ວຍໂມດູນ FCGI (ຈາກ CPAN) ແລະໂມດູນ mod_fastcgi (ມີຢູ່ໃນ
<http://www.fastcgi.com/> ) ແຕ່ລະໂຄງການ Perl ຂອງທ່ານຈະກາຍເປັນ daemon CGI ຖາວອນ
ຂະບວນການ.

ສຸດທ້າຍ, Plack ແມ່ນໂມດູນ Perl ແລະຊຸດເຄື່ອງມືທີ່ປະກອບດ້ວຍ PSGI ກາງ, ຜູ້ຊ່ວຍແລະ
ອະແດບເຕີກັບເຄື່ອງແມ່ຂ່າຍເວັບ, ຊ່ວຍໃຫ້ທ່ານສາມາດປະຕິບັດ scripts ທີ່ສາມາດສືບຕໍ່ແລ່ນໄດ້ງ່າຍ,
ແລະສະຫນອງຄວາມຍືດຫຍຸ່ນກ່ຽວກັບເຄື່ອງແມ່ຂ່າຍເວັບໃດທີ່ທ່ານໃຊ້. ມັນສາມາດອະນຸຍາດໃຫ້ທີ່ມີຢູ່ແລ້ວ
CGI scripts ເພື່ອເພີດເພີນກັບຄວາມຍືດຫຍຸ່ນແລະການປະຕິບັດນີ້ໂດຍມີການປ່ຽນແປງຫນ້ອຍ, ຫຼືສາມາດນໍາໃຊ້ໄດ້
ພ້ອມກັບກອບເວັບ Perl ທີ່ທັນສະໄຫມເພື່ອເຮັດໃຫ້ການຂຽນແລະການນໍາໃຊ້ການບໍລິການເວັບກັບ Perl
ລົມ.

ວິທີແກ້ໄຂເຫຼົ່ານີ້ສາມາດມີຜົນກະທົບອັນໄກໃນລະບົບຂອງທ່ານແລະວິທີທີ່ທ່ານຂຽນຂອງທ່ານ
ໂຄງການ CGI, ດັ່ງນັ້ນການສືບສວນພວກເຂົາດ້ວຍຄວາມລະມັດລະວັງ.

ເບິ່ງນຳhttp://www.cpan.org/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/>.

ວິທີການ ສາມາດເຮັດໄດ້ I ຊ່ອນ ໄດ້ ແຫຼ່ງ ສໍາລັບການ my Perl program?
ລຶບມັນ. :-) ຢ່າງຈິງຈັງ, ມີຫຼາຍວິທີແກ້ໄຂ (ສ່ວນຫຼາຍແມ່ນບໍ່ພໍໃຈ) ກັບ
ລະດັບທີ່ແຕກຕ່າງກັນຂອງ "ຄວາມປອດໄພ".

ກ່ອນອື່ນ ໝົດ, ທ່ານ ບໍ່ສາມາດ ເອົາໄປອ່ານການອະນຸຍາດ, ເພາະວ່າລະຫັດແຫຼ່ງຕ້ອງ
ສາມາດອ່ານໄດ້ເພື່ອຈະລວບລວມ ແລະຕີຄວາມໝາຍ. (ນັ້ນບໍ່ໄດ້ຫມາຍຄວາມວ່າ CGI
ແຫຼ່ງຂອງສະຄຣິບແມ່ນສາມາດອ່ານໄດ້ໂດຍຄົນຢູ່ໃນເວັບ, ເຖິງແມ່ນວ່າ - ສະເພາະຄົນທີ່ມີການເຂົ້າເຖິງ
ລະບົບໄຟລ໌.) ດັ່ງນັ້ນ, ທ່ານຕ້ອງອອກຈາກການອະນຸຍາດທີ່ເປັນມິດກັບສັງຄົມ 0755
ລະດັບ.

ບາງຄົນຖືວ່ານີ້ເປັນບັນຫາຄວາມປອດໄພ. ຖ້າໂຄງການຂອງທ່ານເຮັດສິ່ງທີ່ບໍ່ປອດໄພແລະ
ອີງໃສ່ປະຊາຊົນບໍ່ຮູ້ວິທີການຂຸດຄົ້ນຄວາມບໍ່ຫມັ້ນຄົງເຫຼົ່ານັ້ນ, ມັນບໍ່ປອດໄພ. ມັນ​ແມ່ນ
ມັກຈະເປັນໄປໄດ້ສໍາລັບຜູ້ໃດຜູ້ຫນຶ່ງທີ່ຈະກໍານົດສິ່ງທີ່ບໍ່ປອດໄພແລະຂຸດຄົ້ນໃຫ້ເຂົາເຈົ້າໂດຍບໍ່ມີການ
ກໍາລັງເບິ່ງແຫຼ່ງ. ຄວາມ​ປອດ​ໄພ​ໂດຍ​ຜ່ານ​ຄວາມ​ມືດ, ຊື່​ສໍາ​ລັບ​ການ​ເຊື່ອງ​ແມງ​ໄມ້​ຂອງ​ທ່ານ​ແທນ​ທີ່​ຈະ​ເປັນ
ການແກ້ໄຂພວກມັນ, ແມ່ນຄວາມປອດໄພເລັກນ້ອຍແທ້ໆ.

ທ່ານ​ສາ​ມາດ​ທົດ​ລອງ​ການ​ນໍາ​ໃຊ້​ການ​ເຂົ້າ​ລະ​ຫັດ​ຜ່ານ​ການ​ກັ່ນ​ຕອງ​ແຫຼ່ງ (ເລີ່ມ​ຕົ້ນ​ຈາກ Perl 5.8 ການ​ກັ່ນ​ຕອງ​::Simple
ແລະການກັ່ນຕອງ::Util::ໂມດູນການໂທແມ່ນລວມຢູ່ໃນການແຈກຢາຍມາດຕະຖານ), ແຕ່ທີ່ເຫມາະສົມໃດໆ
ຜູ້ຂຽນໂປລແກລມຈະສາມາດຖອດລະຫັດມັນໄດ້. ທ່ານສາມາດລອງໃຊ້ byte code compiler ແລະ
ນາຍພາສາໄດ້ອະທິບາຍຕໍ່ມາໃນ perlfaq3, ແຕ່ຜູ້ທີ່ຢາກຮູ້ຢາກເຫັນອາດຈະຍັງສາມາດ de-compile ໄດ້
ມັນ. ທ່ານສາມາດລອງໃຊ້ຕົວລວບລວມລະຫັດພື້ນເມືອງທີ່ອະທິບາຍໃນພາຍຫຼັງ, ແຕ່ crackers ອາດຈະສາມາດເຮັດໄດ້
ເພື່ອ disassemble ມັນ. ເຫຼົ່ານີ້ເຮັດໃຫ້ເກີດຄວາມຫຍຸ້ງຍາກໃນລະດັບທີ່ແຕກຕ່າງກັນຕໍ່ຄົນທີ່ຕ້ອງການທີ່ຈະເຂົ້າຫາ
ລະຫັດຂອງທ່ານ, ແຕ່ບໍ່ມີໃຜສາມາດປິດບັງມັນໄດ້ຢ່າງແນ່ນອນ (ຄວາມຈິງຂອງທຸກໆພາສາ, ບໍ່ພຽງແຕ່ Perl).

ມັນງ່າຍຫຼາຍທີ່ຈະຟື້ນຕົວແຫຼ່ງຂອງໂປຼແກຼມ Perl. ທ່ານ​ພຽງ​ແຕ່​ໃຫ້​ອາ​ຫານ​ໂຄງ​ການ​ເພື່ອ​
perl interpreter ແລະໃຊ້ໂມດູນໃນ B:: hierarchy. B::ໂມດູນ Deparse ຄວນເປັນ
ສາມາດເອົາຊະນະຄວາມພະຍາຍາມທີ່ຈະເຊື່ອງແຫຼ່ງ. ອີກເທື່ອຫນຶ່ງ, ນີ້ບໍ່ແມ່ນເອກະລັກຂອງ Perl.

ຖ້າທ່ານກັງວົນກ່ຽວກັບປະຊາຊົນໄດ້ຮັບກໍາໄລຈາກລະຫັດຂອງທ່ານ, ເສັ້ນທາງລຸ່ມແມ່ນສິ່ງນັ້ນ
ບໍ່ມີຫຍັງນອກຈາກໃບອະນຸຍາດທີ່ຈໍາກັດຈະໃຫ້ຄວາມປອດໄພທາງດ້ານກົດຫມາຍແກ່ເຈົ້າ. ໃບອະນຸຍາດຊອບແວຂອງທ່ານແລະ
pepper ມັນ​ກັບ​ຄໍາ​ຖະ​ແຫຼງ​ທີ່​ໄພ​ຂົ່ມ​ຂູ່​ເຊັ່ນ​: "ນີ້​ແມ່ນ​ຊອບ​ແວ​ທີ່​ບໍ່​ໄດ້​ເຜີຍ​ແຜ່​ຂອງ​
XYZ Corp. ການເຂົ້າເຖິງຂອງເຈົ້າບໍ່ໄດ້ອະນຸຍາດໃຫ້ເຈົ້າໃຊ້ມັນ blah blah blah." ພວກເຮົາ
ບໍ່ແມ່ນທະນາຍຄວາມ, ແນ່ນອນ, ດັ່ງນັ້ນທ່ານຄວນໄປຫາທະນາຍຄວາມຖ້າທ່ານຕ້ອງການໃຫ້ແນ່ໃຈວ່າຂອງເຈົ້າ
ຄໍາເວົ້າຂອງໃບອະນຸຍາດຈະຢືນຢູ່ໃນສານ.

ວິທີການ ສາມາດເຮັດໄດ້ I ລວບລວມ my Perl ໂຄງການ ເຂົ້າໄປໃນ byte ລະຫັດ or C?
(ປະກອບສ່ວນໂດຍ brian d foy)

ໂດຍທົ່ວໄປ, ທ່ານບໍ່ສາມາດເຮັດສິ່ງນີ້ໄດ້. ມີບາງສິ່ງທີ່ອາດຈະເຮັດວຽກສໍາລັບສະຖານະການຂອງທ່ານ
ເຖິງແມ່ນວ່າ. ປະຊາຊົນມັກຈະຖາມຄໍາຖາມນີ້ເພາະວ່າພວກເຂົາຕ້ອງການແຈກຢາຍວຽກງານຂອງພວກເຂົາ
ໂດຍ​ບໍ່​ມີ​ການ​ໃຫ້​ລະ​ຫັດ​ແຫຼ່ງ​ຂໍ້​ມູນ​, ແລະ​ວິ​ທີ​ແກ້​ໄຂ​ຫຼາຍ​ທີ່​ສຸດ​ການ​ຄ້າ​ຊ່ອງ​ແຜ່ນ​ເພື່ອ​ຄວາມ​ສະ​ດວກ​.
ທ່ານອາດຈະບໍ່ເຫັນການເພີ່ມຄວາມໄວຫຼາຍ, ເພາະວ່າວິທີແກ້ໄຂສ່ວນໃຫຍ່ພຽງແຕ່ມັດ
ນາຍພາສາ Perl ໃນຜະລິດຕະພັນສຸດທ້າຍ (ແຕ່ເບິ່ງ "ຂ້ອຍສາມາດເຮັດໃຫ້ໂຄງການ Perl ຂອງຂ້ອຍເຮັດວຽກໄດ້ແນວໃດ
ໄວ​ຂຶ້ນ?”).

Perl Archive Toolkit (http://par.perl.org/> ) ແມ່ນການປຽບທຽບຂອງ Perl ກັບ JAR ຂອງ Java. ມັນ
ສາມາດໃຊ້ໄດ້ຢ່າງເສລີ ແລະຢູ່ໃນ CPAN (http://search.cpan.org/dist/PAR/> ).

ຍັງມີບາງຜະລິດຕະພັນການຄ້າທີ່ອາດຈະເຮັດວຽກສໍາລັບທ່ານ, ເຖິງແມ່ນວ່າທ່ານຕ້ອງຊື້
ໃບ​ອະ​ນຸ​ຍາດ​ໃຫ້​ເຂົາ​ເຈົ້າ​.

ຊຸດ Perl Dev (http://www.activestate.com/Products/Perl_Dev_Kit/> ) ຈາກ ActiveState
ສາມາດ "ປ່ຽນໂປຣແກມ Perl ຂອງທ່ານໃຫ້ເປັນໂປຣແກຣມທີ່ກຽມພ້ອມທີ່ຈະແລ່ນໄດ້ສຳລັບ HP-UX, Linux, Solaris ແລະ
Windows."

Perl2Exe (http://www.indigostar.com/perl2exe.htm> ) ເປັນໂຄງການເສັ້ນຄໍາສັ່ງສໍາລັບ
ການປ່ຽນສະຄຣິບ perl ເປັນໄຟລ໌ທີ່ສາມາດປະຕິບັດໄດ້. ມັນເປົ້າຫມາຍທັງ Windows ແລະ Unix platforms.

ວິທີການ ສາມາດເຮັດໄດ້ I ໄດ້ຮັບ "#!perl" to ການເຮັດວຽກ on [MS-DOS, NT, ...]?
ສໍາລັບ OS/2 ພຽງແຕ່ໃຊ້

extproc perl -S -your_switches

ເປັນແຖວທຳອິດໃນໄຟລ໌ "*.cmd" ("-S" ເນື່ອງຈາກມີຂໍ້ຜິດພາດໃນການຈັດການ "extproc" ຂອງ cmd.exe). ສໍາລັບ
DOS ຫນຶ່ງທໍາອິດຄວນປະດິດໄຟລ໌ batch ທີ່ສອດຄ້ອງກັນແລະ codify ມັນ
"ALTERNATE_SHEBANG" (ເບິ່ງ dosish.h ໄຟລ໌ໃນການແຈກຢາຍແຫຼ່ງສໍາລັບການເພີ່ມເຕີມ
ຂໍ້ມູນ).

ການຕິດຕັ້ງ Win95/NT, ເມື່ອໃຊ້ພອດ ActiveState ຂອງ Perl, ຈະດັດແປງ
ການລົງທະບຽນເພື່ອເຊື່ອມໂຍງສ່ວນຂະຫຍາຍ ".pl" ກັບນາຍພາສາ perl. ຖ້າທ່ານຕິດຕັ້ງ
ພອດອື່ນ, ບາງທີກໍ່ສ້າງ Win95 / NT Perl ຂອງທ່ານເອງຈາກແຫຼ່ງມາດຕະຖານໂດຍ
ການນໍາໃຊ້ພອດ Windows ຂອງ gcc (ເຊັ່ນ: ກັບ cygwin ຫຼື mingw32), ຫຼັງຈາກນັ້ນທ່ານຈະຕ້ອງປັບປຸງແກ້ໄຂ.
ລົງທະບຽນຕົວທ່ານເອງ. ນອກເຫນືອຈາກການເຊື່ອມໂຍງກັບ ".pl" ກັບນາຍພາສາ, ຄົນ NT ສາມາດ
ໃຊ້: "SET PATHEXT=%PATHEXT%;.PL" ເພື່ອໃຫ້ພວກເຂົາແລ່ນໂຄງການ "install-linux.pl" ພຽງແຕ່ໂດຍ
ພິມ "install-linux".

ພາຍໃຕ້ "Classic" MacOS, ໂຄງການ perl ຈະມີຜູ້ສ້າງແລະປະເພດທີ່ເຫມາະສົມ, ດັ່ງນັ້ນ
ການຄລິກສອງຄັ້ງພວກມັນຈະເອີ້ນແອັບພລິເຄຊັນ MacPerl. ພາຍໃຕ້ Mac OS X, ແອັບຯທີ່ສາມາດຄລິກໄດ້
ສາມາດເຮັດໄດ້ຈາກ "#!" script ໃຊ້ Wil Sanchez' DropScript utility:
<http://www.wsanchez.net/software/>.

ສຳ ຄັນ!: ບໍ່ວ່າເຈົ້າເຮັດຫຍັງ, ກະລຸນາຢ່າອຸກອັ່ງ, ແລະພຽງແຕ່ຖິ້ມ perl
ນາຍພາສາເຂົ້າໃນບັນຊີ cgi-bin ຂອງທ່ານ, ເພື່ອໃຫ້ໂຄງການຂອງທ່ານເຮັດວຽກສໍາລັບເວັບ
ເຊີບເວີ. ນີ້ແມ່ນຄວາມສ່ຽງດ້ານຄວາມປອດໄພອັນໃຫຍ່ຫຼວງຫຼາຍ. ໃຊ້ເວລາເພື່ອຄິດອອກວິທີການເຮັດມັນ
ຢ່າງຖືກຕ້ອງ.

ສາມາດເຮັດໄດ້ I ຂຽນ ທີ່ເປັນປະໂຫຍດ Perl ໂຄງການ on ໄດ້ ຄໍາສັ່ງ ສາຍ?
ແມ່ນແລ້ວ. ອ່ານ perlrun ສໍາລັບຂໍ້ມູນເພີ່ມເຕີມ. ບາງຕົວຢ່າງປະຕິບັດຕາມ. (ເຫຼົ່ານີ້ສົມມຸດມາດຕະຖານ Unix
ກົດ​ລະ​ບຽບ​ການ​ອ້າງ​ອີງ Shell​.)

# ລວມຊ່ອງຂໍ້ມູນທຳອິດ ແລະ ສຸດທ້າຍ
perl -lane 'ພິມ $F[0] + $F[-1]' *

# ລະບຸໄຟລ໌ຂໍ້ຄວາມ
perl -le 'for(@ARGV) {print if -f && -T _}' *

# ເອົາອອກ (ສ່ວນໃຫຍ່) ຄໍາເຫັນຈາກໂຄງການ C
perl -0777 -pe 's{/\*.*?\*/}{}gs' foo.c

# ເຮັດໃຫ້ໄຟລ໌ຫນຶ່ງເດືອນອ່ອນກວ່າມື້ນີ້, ເອົາຊະນະ daemons reaper
perl -e '$X=24*60*60; utime(ເວລາ(),time() + 30 * $X,@ARGV)'*

# ຊອກຫາ uid ທໍາອິດທີ່ບໍ່ໄດ້ໃຊ້
perl -le '$i++ ໃນຂະນະທີ່ getpwuid($i); ພິມ $i'

# ສະແດງ manpath ສົມເຫດສົມຜົນ
ສະທ້ອນ $PATH | perl -nl -072 -e '
s![^/+]*$!man!&&-d&&!$s{$_}++&&push@m,$_;END{print"@m"}'

ຕົກລົງ, ອັນສຸດທ້າຍແມ່ນເປັນການເຂົ້າແຂ່ງຂັນ Perl Obfuscated. :-)

ເປັນຫຍັງ ບໍ່ໄດ້ Perl ໜຶ່ງ ລອກ ການເຮັດວຽກ on my DOS/Mac/VMS ລະບົບ?
ບັນຫາແມ່ນປົກກະຕິແລ້ວວ່ານາຍພາສາຄໍາສັ່ງໃນລະບົບເຫຼົ່ານັ້ນມີແທນທີ່ຈະ
ແນວ​ຄວາມ​ຄິດ​ທີ່​ແຕກ​ຕ່າງ​ກັນ​ກ່ຽວ​ກັບ​ການ​ອ້າງ​ອີງ​ກ​່​ວາ​ແກະ Unix ພາຍ​ໃຕ້​ການ​ທີ່​ຫນຶ່ງ liners ໄດ້​
ສ້າງ. ໃນບາງລະບົບ, ທ່ານອາດຈະຕ້ອງປ່ຽນວົງຢືມດຽວໄປຫາຄູ່, ທີ່ທ່ານ
ຕ້ອງ ບໍ່ ເຮັດໃນລະບົບ Unix ຫຼື Plan9. ທ່ານອາດຈະຕ້ອງປ່ຽນ % ດຽວເປັນ %%.

ຍົກ​ຕົວ​ຢ່າງ:

# Unix (ລວມທັງ Mac OS X)
perl -e 'ພິມ "ສະບາຍດີໂລກ\n"'

# DOS, ແລະອື່ນໆ.
perl -e "ພິມ \"ສະບາຍດີໂລກ\n\""

# Mac Classic
ພິມ "ສະບາຍດີໂລກ\n"
(ຫຼັງຈາກນັ້ນດໍາເນີນການ "Myscript" ຫຼື Shift-Command-R)

# MPW
perl -e 'ພິມ "ສະບາຍດີໂລກ\n"'

# VMS
perl -e "ພິມ ""ສະບາຍດີໂລກ\n"""

ບັນຫາແມ່ນວ່າບໍ່ມີຕົວຢ່າງເຫຼົ່ານີ້ທີ່ເຊື່ອຖືໄດ້: ພວກມັນຂຶ້ນກັບຄໍາສັ່ງ
ນາຍພາສາ. ພາຍໃຕ້ Unix, ສອງອັນທໍາອິດມັກຈະເຮັດວຽກ. ພາຍໃຕ້ DOS, ມັນເປັນໄປໄດ້ທັງຫມົດ
ທັງເຮັດວຽກບໍ່ໄດ້. ຖ້າ 4DOS ເປັນແກະຄໍາສັ່ງ, ທ່ານອາດຈະມີໂຊກດີກວ່ານີ້:

perl -e "ພິມ "ສະບາຍດີໂລກ\n ""

ພາຍໃຕ້ Mac, ມັນຂຶ້ນກັບສະພາບແວດລ້ອມທີ່ທ່ານກໍາລັງໃຊ້. ແກະ MacPerl, ຫຼື MPW, ແມ່ນ
ຄືກັນກັບແກະຂອງ Unix ໃນການສະຫນັບສະຫນຸນຂອງຕົນສໍາລັບຕົວແປການອ້າງອີງຫຼາຍ, ຍົກເວັ້ນວ່າມັນເຮັດໃຫ້
ການນໍາໃຊ້ຕົວອັກສອນທີ່ບໍ່ແມ່ນ ASCII ຂອງ Mac ຟຣີເປັນຕົວລະຄອນຄວບຄຸມ.

ການນໍາໃຊ້ qq(), q(), ແລະ qx(), ແທນ "ວົງຢືມຄູ່", 'ວົງຢືມດຽວ', ແລະ 'backticks',
ອາດຈະເຮັດໃຫ້ໜຶ່ງແຖວຂຽນງ່າຍຂຶ້ນ.

ບໍ່ມີການແກ້ໄຂທົ່ວໄປສໍາລັບສິ່ງທັງຫມົດນີ້. ມັນເປັນລັງກິນອາຫານ.

[ບາງຄໍາຕອບນີ້ແມ່ນປະກອບສ່ວນໂດຍ Kenneth Albanowski.]

ບ່ອນທີ່ ສາມາດເຮັດໄດ້ I ຮຽນຮູ້ ກ່ຽວກັບ CGI or ເວັບໄຊຕ໌ ດໍາເນີນໂຄງການ in Perl?
ສໍາລັບໂມດູນ, ເອົາໂມດູນ CGI ຫຼື LWP ຈາກ CPAN. ສໍາລັບປຶ້ມແບບຮຽນ, ເບິ່ງທັງສອງໂດຍສະເພາະ
ອຸທິດຕົນເພື່ອສິ່ງຂອງເວັບໃນຄໍາຖາມກ່ຽວກັບປຶ້ມ. ສໍາລັບບັນຫາແລະຄໍາຖາມທີ່ກ່ຽວຂ້ອງກັບການ
web, ເຊັ່ນ "ເປັນຫຍັງຂ້ອຍໄດ້ຮັບຄວາມຜິດພາດ 500" ຫຼື "ເປັນຫຍັງມັນບໍ່ເຮັດວຽກຈາກຕົວທ່ອງເວັບທັນທີເມື່ອມັນ.
ເຮັດວຽກໄດ້ດີຢູ່ໃນເສັ້ນຄໍາສັ່ງ", ເບິ່ງຄູ່ມືການແກ້ໄຂບັນຫາແລະການອ້າງອີງໃນ perlfaq9
ຫຼືໃນ CGI MetaFAQ:

L<http://www.perl.org/CGI_MetaFAQ.html>

ຊອກຫາຢູ່ໃນກອບເວັບຂອງ Plack ແລະທີ່ທັນສະໄຫມ Perl ແມ່ນແນະນໍາໃຫ້ສູງ, ເຖິງແມ່ນວ່າ; ເວັບໄຊຕ໌
ການຂຽນໂປລແກລມໃນ Perl ໄດ້ພັດທະນາໄປໄກຈາກຍຸກເກົ່າຂອງສະຄິບ CGI ງ່າຍໆ.

ບ່ອນທີ່ ສາມາດເຮັດໄດ້ I ຮຽນຮູ້ ກ່ຽວກັບ ຈຸດປະສົງ Perl ການຂຽນໂປລແກລມ?
ສະຖານທີ່ທີ່ດີທີ່ຈະເລີ່ມຕົ້ນແມ່ນ perlootut, ແລະທ່ານສາມາດນໍາໃຊ້ perlobj ສໍາລັບການອ້າງອີງ.

ປື້ມທີ່ດີກ່ຽວກັບ OO on Perl ແມ່ນ "Object-Oriented Perl" ໂດຍ Damian Conway ຈາກ Manning
ສິ່ງພິມ, ຫຼື "Intermediate Perl" ໂດຍ Randal Schwartz, brian d foy, ແລະ Tom Phoenix ຈາກ
O'Reilly Media.

ບ່ອນທີ່ ສາມາດເຮັດໄດ້ I ຮຽນຮູ້ ກ່ຽວກັບ ເຊື່ອມຕໍ່ C ກັບ Perl?
ຖ້າທ່ານຕ້ອງການໂທຫາ C ຈາກ Perl, ເລີ່ມຕົ້ນດ້ວຍ perlxstut, ຍ້າຍໄປ perlxs, xsubpp, ແລະ
perlguts. ຖ້າທ່ານຕ້ອງການໂທຫາ Perl ຈາກ C, ຫຼັງຈາກນັ້ນອ່ານ perlembed, perlcall, ແລະ perlguts.
ຢ່າລືມວ່າທ່ານສາມາດຮຽນຮູ້ຫຼາຍຢ່າງຈາກການເບິ່ງວິທີການຜູ້ຂຽນທີ່ມີຢູ່ແລ້ວ
ໂມດູນການຂະຫຍາຍຂຽນລະຫັດຂອງພວກເຂົາແລະແກ້ໄຂບັນຫາຂອງພວກເຂົາ.

ທ່ານອາດຈະບໍ່ຕ້ອງການພະລັງງານທັງຫມົດຂອງ XS. ໂມດູນ Inline::C ໃຫ້ທ່ານໃສ່ລະຫັດ C ໂດຍກົງ
ໃນແຫຼ່ງ Perl ຂອງທ່ານ. ມັນຈັດການ magic ທັງຫມົດເພື່ອເຮັດໃຫ້ມັນເຮັດວຽກ. ເຈົ້າຍັງຕ້ອງຮຽນຢູ່
ຢ່າງຫນ້ອຍບາງ perl API ແຕ່ທ່ານຈະບໍ່ຕ້ອງຈັດການກັບຄວາມສັບສົນຂອງ XS
ໄຟລ​໌​ສະ​ຫນັບ​ສະ​ຫນູນ​.

ຂ້ອຍ ອ່ານ perlembed, perlguts, ແລະອື່ນໆ, ແຕ່ I ບໍ່ສາມາດ ຕິດຢູ່ perl in my C ແຜນງານ; ແມ່ນ​ຫຍັງ am I ເຮັດ
ຜິດບໍ?
ດາວໂຫລດ ExtUtils::ຊຸດ Embed ຈາກ CPAN ແລະດໍາເນີນການ 'ເຮັດການທົດສອບ'. ຖ້າການທົດສອບຜ່ານ, ອ່ານ
ຝັກອີກເທື່ອຫນຶ່ງແລະອີກເທື່ອຫນຶ່ງແລະອີກເທື່ອຫນຶ່ງ. ຖ້າພວກເຂົາລົ້ມເຫລວ, ເບິ່ງ perlbug ແລະສົ່ງລາຍງານຂໍ້ຜິດພາດກັບ
ຜົນຜະລິດຂອງ "ເຮັດການທົດສອບ TEST_VERBOSE=1" ພ້ອມກັບ "perl -V".

ເມື່ອ​ໃດ​ I ພະຍາຍາມ to ແລ່ນ my ອັກສອນ, I ໄດ້ຮັບ ນີ້ ຂໍ້ຄວາມ. ແມ່ນ​ຫຍັງ ບໍ່ it ຫມາຍຄວາມວ່າ?
ບັນຊີລາຍຊື່ຄົບຖ້ວນຂອງຂໍ້ຄວາມສະແດງຂໍ້ຜິດພາດແລະຄໍາເຕືອນຂອງ Perl ທີ່ມີຂໍ້ຄວາມຄໍາອະທິບາຍສາມາດພົບໄດ້
ໃນ perldiag. ນອກນັ້ນທ່ານຍັງສາມາດນໍາໃຊ້ໂຄງການ splain (ແຈກຢາຍກັບ Perl) ເພື່ອອະທິບາຍ
ຂໍ້​ຄວາມ​ຜິດ​ພາດ​:

ໂປຣແກຣມ perl 2>diag.out
ແປ້ນ [-v] [-p] diag.out

ຫຼືປ່ຽນໂຄງການຂອງທ່ານເພື່ອອະທິບາຍຂໍ້ຄວາມສໍາລັບທ່ານ:

ໃຊ້ການວິນິດໄສ;

or

ໃຊ້ການວິນິດໄສ -verbose;

ແມ່ນຫຍັງ ຜູ້ຜະລິດ?
(ປະກອບສ່ວນໂດຍ brian d foy)

The ExtUtils::MakeMaker ໂມດູນ, ທີ່ຮູ້ຈັກກັນດີໃນນາມ "MakeMaker", ປ່ຽນສະຄຣິບ Perl,
ໂດຍປົກກະຕິເອີ້ນວ່າ "Makefile.PL", ເຂົ້າໄປໃນ Makefile. ເຄື່ອງມື Unix "ເຮັດ" ໃຊ້ໄຟລ໌ນີ້ເພື່ອ
ຈັດການການເພິ່ງພາອາໄສ ແລະການປະຕິບັດເພື່ອປະມວນຜົນ ແລະຕິດຕັ້ງການແຈກຢາຍ Perl.

ຜູ້ຂຽນ ແລະ COPYRIGHT


ລິຂະສິດ (c) 1997-2010 Tom Christiansen, Nathan Torkington, ແລະຜູ້ຂຽນອື່ນໆຕາມທີ່ບັນທຶກໄວ້.
ສິດທິທັງຫມົດສະຫງວນ.

ເອກະສານນີ້ແມ່ນບໍ່ເສຍຄ່າ; ທ່ານສາມາດແຈກຢາຍມັນຄືນໃຫມ່ແລະ / ຫຼືດັດແປງມັນພາຍໃຕ້ເງື່ອນໄຂດຽວກັນ
ເປັນ Perl ຕົວຂອງມັນເອງ.

ໂດຍບໍ່ຄໍານຶງເຖິງການແຈກຢາຍຂອງມັນ, ຕົວຢ່າງລະຫັດທັງຫມົດນີ້ແມ່ນຢູ່ໃນສາທາລະນະ. ເຈົ້າແມ່ນ
ອະ​ນຸ​ຍາດ​ໃຫ້​ແລະ​ຊຸກ​ຍູ້​ໃຫ້​ການ​ນໍາ​ໃຊ້​ລະ​ຫັດ​ນີ້​ແລະ​ອຸ​ປະ​ກອນ​ໃດໆ​ຂອງ​ມັນ​ໃນ​ໂຄງ​ການ​ຂອງ​ທ່ານ​ເອງ​
ເພື່ອຄວາມມ່ວນຊື່ນ ຫຼືເພື່ອຜົນກຳໄລຕາມທີ່ເຈົ້າເຫັນ. ຄໍາຄິດເຫັນງ່າຍໆໃນລະຫັດໃຫ້ສິນເຊື່ອກັບ
FAQ ຈະເປັນມາລະຍາດແຕ່ບໍ່ຈໍາເປັນຕ້ອງ.

ໃຊ້ perlfaq3 ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net


ເຊີບເວີ ແລະສະຖານີເຮັດວຽກຟຣີ

ດາວໂຫຼດແອັບ Windows ແລະ Linux

Linux ຄຳ ສັ່ງ

Ad




×
ການ​ໂຄ​ສະ​ນາ
?ຊື້ເຄື່ອງ, ຈອງ, ຫຼືຊື້ທີ່ນີ້ — ບໍ່ມີຄ່າໃຊ້ຈ່າຍ, ຊ່ວຍໃຫ້ການບໍລິການຟຣີ.