GoGPT Best VPN GoSearch

Biểu tượng yêu thích OnWorks

perlfaq3 - Trực tuyến trên đám mây

Chạy perlfaq3 trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks trên Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

Đây là lệnh perlfaq3 có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


perlfaq3 - Công cụ lập trình

PHIÊN BẢN


phiên bản 5.021009

MÔ TẢ


Phần Câu hỏi thường gặp này trả lời các câu hỏi liên quan đến công cụ lập trình viên và lập trình
hỗ trợ.

Làm thế nào do I do (bất cứ điều gì)?
Bạn đã xem CPAN (xem perlfaq2) chưa? Rất có thể ai đó đã viết một
mô-đun có thể giải quyết vấn đề của bạn. Bạn đã đọc các trang thích hợp chưa? Đây là một
chỉ mục ngắn gọn:

Khái niệm cơ bản
perldata - Các kiểu dữ liệu perl
perlvar - Các biến được xác định trước Perl
perlsyn - Cú pháp Perl
perlop - Các toán tử perl và mức độ ưu tiên
perlsub - chương trình con Perl
Thực hiện
perlrun - cách thực thi trình thông dịch Perl
perldebug - gỡ lỗi Perl
Chức năng
perlfunc - Các hàm nội trang Perl
Đối tượng
perlref - Tham chiếu Perl và cấu trúc dữ liệu lồng nhau
perlmod - Mô-đun Perl (gói và bảng ký hiệu)
perlobj - Đối tượng Perl
perltie - cách ẩn một lớp đối tượng trong một biến đơn giản
Cấu trúc dữ liệu
perlref - Tham chiếu Perl và cấu trúc dữ liệu lồng nhau
perllol - Thao tác với các mảng trong Perl
perldsc - Sách dạy về cấu trúc dữ liệu Perl
Modules
perlmod - Mô-đun Perl (gói và bảng ký hiệu)
perlmodlib - xây dựng các mô-đun Perl mới và tìm kiếm những mô-đun hiện có
Biểu thức chính quy
perlre - Biểu thức chính quy Perl
perlfunc - Các hàm nội trang Perl>
perlop - Các toán tử perl và mức độ ưu tiên
perllocale - Xử lý ngôn ngữ Perl (quốc tế hóa và bản địa hóa)
Chuyển sang perl5
perltrap - bẫy Perl cho những kẻ không cẩn thận
perl
Liên kết với C
perlxstut - Hướng dẫn viết XSUB
perlxs - sổ tay tham khảo ngôn ngữ XS
perlcall - Quy ước gọi Perl từ C
perlguts - Giới thiệu về API Perl
perlembed - cách nhúng perl vào chương trình C của bạn
Thông báo sau
<http://www.cpan.org/misc/olddoc/FMTEYEWTK.tgz> (không phải là man-page nhưng vẫn hữu ích, a
bộ sưu tập các bài luận khác nhau về kỹ thuật Perl)

Mục lục thô cho tập trang Perl được tìm thấy trong perltoc.

Làm thế nào có thể I sử dụng Perl tương tác?
Cách tiếp cận điển hình sử dụng trình gỡ lỗi Perl, được mô tả trong perldebug(1) manpage, trên một
chương trình "trống", như thế này:

perl -de 42

Bây giờ chỉ cần nhập bất kỳ mã Perl hợp pháp nào, và nó sẽ được đánh giá ngay lập tức. Bạn cũng có thể
kiểm tra bảng ký hiệu, lấy dấu lùi ngăn xếp, kiểm tra giá trị biến, đặt điểm ngắt,
và các hoạt động khác thường được tìm thấy trong trình gỡ lỗi tượng trưng.

Bạn cũng có thể sử dụng Devel :: REPL là một trình bao tương tác cho Perl, thường được gọi là
REPL - Đọc, Đánh giá, In, Vòng lặp. Nó cung cấp các tính năng tiện dụng khác nhau.

Làm thế nào do I tìm cái nào mô-đun đang cài đặt on my hệ thống?
Từ dòng lệnh, bạn có thể sử dụng chuyển đổi "-l" của lệnh "cpan":

$ cpan -l

Bạn cũng có thể sử dụng nút chuyển "-a" của "cpan" để tạo tệp tự động gộp "CPAN.pm"
hiểu và có thể sử dụng để cài đặt lại mọi mô-đun:

$ cpan -a

Bên trong chương trình Perl, bạn có thể sử dụng mô-đun ExtUtils :: Installed để hiển thị tất cả các
phân phối, mặc dù có thể mất một thời gian để thực hiện điều kỳ diệu của nó. Thư viện tiêu chuẩn mà
đi kèm với Perl chỉ hiển thị dưới dạng "Perl" (mặc dù bạn có thể nhận được những người có
Mô-đun :: CoreList).

sử dụng ExtUtils :: Đã cài đặt;

my $ inst = ExtUtils :: Installed-> new ();
@modules của tôi = $ inst-> modules ();

Nếu bạn muốn có danh sách tất cả các tên tệp của mô-đun Perl, bạn có thể sử dụng File :: Find :: Rule:

sử dụng File :: Find :: Rule;

my @files = File :: Find :: Rule->
tính năng bổ sung ({follow => 1}) ->
tệp () ->
tên ('* .pm') ->
trong (@INC)
;

Nếu bạn không có mô-đun đó, bạn có thể làm điều tương tự với File :: Find là một phần của
thư viện tiêu chuẩn:

sử dụng File :: Find;
@files của tôi;

tìm thấy(
{
muốn => phụ {
push @files, $ File :: Find :: fullname
if -f $ File :: Find :: fullname && /\.pm$/
},
theo dõi => 1,
follow_skip => 2,
},
@INC
);

print join "\ n", @files;

Nếu bạn chỉ cần kiểm tra nhanh để xem liệu mô-đun có khả dụng hay không, bạn có thể kiểm tra
tài liệu. Nếu bạn có thể đọc tài liệu, rất có thể mô-đun đã được cài đặt. Nếu như
bạn không thể đọc tài liệu, mô-đun có thể không có bất kỳ (trong một số trường hợp hiếm hoi):

Mô-đun $ perldoc :: Tên

Bạn cũng có thể thử bao gồm mô-đun trong một lớp lót để xem liệu perl có tìm thấy nó hay không:

$ perl -MModule :: Tên -e1

(Nếu bạn không nhận được thông báo lỗi "Không thể định vị ... trong @INC", thì Perl đã tìm thấy
tên mô-đun bạn đã yêu cầu.)

Làm thế nào do I gỡ lỗi my Perl các chương trình?
(đóng góp bởi brian d foy)

Trước khi làm bất cứ điều gì khác, bạn có thể tự giúp mình bằng cách đảm bảo rằng bạn đã để Perl nói với bạn
về các khu vực có vấn đề trong mã của bạn. Bằng cách bật cảnh báo và nghiêm ngặt, bạn có thể bắt đầu
nhiều vấn đề trước khi chúng trở nên quá lớn. Bạn có thể tìm hiểu thêm về những điều này trong nghiêm ngặt và
cảnh báo.

#!/ usr / bin / perl
Sử dụng nghiêm ngặt;
cảnh báo sử dụng;

Ngoài ra, trình gỡ lỗi đơn giản nhất là chức năng "in". Sử dụng nó để xem xét các giá trị như
bạn chạy chương trình của mình:

print STDERR "Giá trị là [$ value] \ n";

Mô-đun Data :: Dumper có thể in cấu trúc dữ liệu Perl khá đẹp mắt:

sử dụng Dữ liệu :: Dumper qw (Dumper);
print STDERR "Hàm băm là". Dumper (\% hash). "\n";

Perl đi kèm với một trình gỡ lỗi tương tác, bạn có thể bắt đầu bằng công tắc "-d". Của nó
giải thích đầy đủ trong perldebug.

Nếu bạn muốn có giao diện người dùng đồ họa và bạn có Tk, bạn có thể sử dụng "ptkdb". Nó trên
CPAN và có sẵn miễn phí.

Nếu bạn cần một thứ gì đó phức tạp hơn và có thể kiểm soát được, Leon Brocard's Devel :: ebug
(mà bạn có thể gọi với công tắc "-D" là "-Debug") cung cấp cho bạn các móc lập trình
vào tất cả mọi thứ bạn cần để viết của riêng bạn (không có quá nhiều đau đớn và đau khổ).

Bạn cũng có thể sử dụng trình gỡ lỗi thương mại như Affrus (Mac OS X), Komodo từ Activestate
(Windows và Mac OS X) hoặc EPIC (hầu hết các nền tảng).

Làm thế nào do I Hồ sơ my Perl các chương trình?
(đóng góp bởi brian d foy, cập nhật ngày 25 tháng 12 22:26:2008 PDT XNUMX)

Không gian tên "Devel" có một số mô-đun mà bạn có thể sử dụng để cấu hình các chương trình Perl của mình.

Devel :: NYTProf (New York Times Profiler) thực hiện cả cấu hình câu lệnh và chương trình con.
Nó có sẵn từ CPAN và bạn cũng gọi nó bằng nút chuyển "-d":

perl -d: NYTProf some_perl.pl

Nó tạo ra một cơ sở dữ liệu về thông tin hồ sơ mà bạn có thể chuyển thành báo cáo. Các
Lệnh "nytprofhtml" biến dữ liệu thành một báo cáo HTML tương tự như Devel :: Cover
báo cáo:

nytprofhtml

Bạn cũng có thể quan tâm đến việc sử dụng Điểm chuẩn để đo lường và so sánh các đoạn mã.

Bạn có thể đọc thêm về cách lập hồ sơ trong Lập trình Perl, chương 20, hoặc Làm chủ Perl,
Chương 5.

tài liệu perldebguts tạo trình gỡ lỗi tùy chỉnh nếu bạn cần tạo một loại đặc biệt
Hồ sơ. brian d foy mô tả quá trình trong Perl Bài viết, "Tạo Perl
Trình gỡ lỗi ",http://www.ddj.com/184404522> và "Hồ sơ trong Perl"
<http://www.ddj.com/184404580>.

Perl.com có ​​hai bài viết thú vị về việc lập hồ sơ: "Hồ sơ Perl", của Simon Cozens,
<http://www.perl.com/lpt/a/850> và "Gỡ lỗi và lập hồ sơ ứng dụng mod_perl", bởi
Frank Wiles,http://www.perl.com/pub/a/2006/02/09/debug_mod_perl.html>.

Randal L. Schwartz viết về việc lập hồ sơ trong "Tăng tốc các chương trình Perl của bạn" cho Unix
Phê duyệt,http://www.stonehenge.com/merlyn/UnixReview/col49.html> và "Hồ sơ trong
Bộ công cụ mẫu qua ghi đè "cho Linux Tạp chí,
<http://www.stonehenge.com/merlyn/LinuxMag/col75.html>.

Làm thế nào do I tham chiếu chéo my Perl các chương trình?
Mô-đun B :: Xref có thể được sử dụng để tạo báo cáo tham chiếu chéo cho các chương trình Perl.

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

Is a máy in đẹp (định dạng) cho ngôn ngữ Perl?
Perl :: Tidy đi kèm với một tập lệnh perl perltidy để thụt lề và định dạng lại các tập lệnh Perl thành
làm cho chúng dễ đọc hơn bằng cách cố gắng tuân theo các quy tắc của perlstyle. Nếu bạn viết
Perl, hoặc dành nhiều thời gian để đọc Perl, bạn có thể sẽ thấy nó hữu ích.

Tất nhiên, nếu bạn chỉ đơn giản làm theo các hướng dẫn trong perlstyle, bạn không cần phải
định dạng lại. Thói quen định dạng mã của bạn khi bạn viết nó sẽ giúp ngăn ngừa lỗi. Của bạn
biên tập viên có thể và nên giúp bạn với điều này. Chế độ perl hoặc chế độ cperl mới hơn cho emacs có thể
cung cấp lượng trợ giúp đáng kể với hầu hết (nhưng không phải tất cả) mã và thậm chí ít hơn
trình chỉnh sửa có thể lập trình có thể cung cấp hỗ trợ đáng kể. Tom Christiansen và nhiều người khác
VI người dùng thề bởi các cài đặt sau trong vi và các bản sao của nó:

đặt ai sw = 4
bản đồ! ^ O {^ M} ^ [O ^ T

Đặt nó vào của bạn .exrc tệp (thay thế các ký tự dấu mũ bằng các ký tự điều khiển) và
đi bạn đi. Trong chế độ chèn, ^ T là thụt lề, ^ D là dấu gạch ngang và ^ O là
blockdenting - như nó đã từng. Có thể tìm thấy một ví dụ đầy đủ hơn, với các nhận xét tại
<http://www.cpan.org/authors/id/TOMC/scripts/toms.exrc.gz>

Is an IDE or Cửa sổ Perl Biên tập viên?
Các chương trình Perl chỉ là văn bản thuần túy, vì vậy bất kỳ trình soạn thảo nào cũng vậy.

Nếu bạn đang sử dụng Unix, bạn đã có IDE - chính Unix. Triết lý Unix là
triết lý của một số công cụ nhỏ mà mỗi công cụ làm một việc và làm tốt điều đó. Nó giống như một
hộp dụng cụ của thợ mộc.

Nếu bạn muốn một IDE, hãy kiểm tra những điều sau (theo thứ tự bảng chữ cái, không theo thứ tự ưu tiên):

Eclipse
<http://e-p-i-c.sf.net/>

Dự án tích hợp Eclipse Perl tích hợp chỉnh sửa / gỡ lỗi Perl với Eclipse.

công cụ
<http://www.enginsite.com/>

Perl Editor của EngInSite là một môi trường phát triển tích hợp hoàn chỉnh (IDE) cho
tạo, thử nghiệm và gỡ lỗi các tập lệnh Perl; công cụ này chạy trên Windows
9x / NT / 2000 / XP trở lên.

Kê-pha
<http://kephra.sf.net>

Trình chỉnh sửa GUI được viết bằng Perl sử dụng wxWidgets và Scintilla với rất nhiều
Tính năng, đặc điểm. Nhắm đến giao diện người dùng dựa trên các nguyên tắc Perl như TIMTOWTDI và "những điều dễ dàng
Việc dễ nên việc khó ”.

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

Đa nền tảng của ActiveState (tính đến tháng 2004 năm XNUMX, đó là Windows, Linux và Solaris),
IDE đa ngôn ngữ có hỗ trợ Perl, bao gồm trình gỡ lỗi biểu thức chính quy và
gỡ lỗi từ xa.

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

Mở Perl IDE
<http://open-perl-ide.sourceforge.net/>

Open Perl IDE là một môi trường phát triển tích hợp để viết và gỡ lỗi Perl
tập lệnh với bản phân phối ActivePerl của ActiveState trong Windows 95/98 / NT / 2000.

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

OptiPerl là một Windows IDE với môi trường CGI mô phỏng, bao gồm trình gỡ lỗi và
trình soạn thảo làm nổi bật cú pháp.

Padre
<http://padre.perlide.org/>

Padre là IDE đa nền tảng cho Perl được viết bằng Perl bằng cách sử dụng wxWidgets để cung cấp
cái nhìn và cảm nhận bản địa. Nó là mã nguồn mở theo Giấy phép Nghệ thuật. Nó là một trong
Perl IDE mới hơn.

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

PerlBuilder là một môi trường phát triển tích hợp dành cho Windows hỗ trợ Perl
phát triển.

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

Từ Help Consulting, dành cho Windows.

Perl trực quan
<http://www.activestate.com/Products/Visual_Perl/>

Visual Perl là một trình cắm thêm Visual Studio.NET từ ActiveState.

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

Zeus cho Windows là một trình soạn thảo / IDE đa ngôn ngữ Win32 khác đi kèm với sự hỗ trợ
cho Perl.

Đối với người chỉnh sửa: nếu bạn đang sử dụng Unix, bạn có thể đã có vi hoặc vi sao rồi, và có thể
emacs cũng vậy, vì vậy bạn có thể không cần tải xuống bất cứ thứ gì. Trong bất kỳ emacs nào, chế độ cperl (Mx
cperl-mode) cung cấp cho bạn có lẽ là chế độ chỉnh sửa Perl tốt nhất hiện có trong bất kỳ trình soạn thảo nào.

Nếu bạn đang sử dụng Windows, bạn có thể sử dụng bất kỳ trình chỉnh sửa nào cho phép bạn làm việc với văn bản thuần túy, chẳng hạn như
như NotePad hoặc WordPad. Bộ xử lý Word, chẳng hạn như Microsoft Word hoặc WordPerfect, thường
không hoạt động vì chúng chèn tất cả các loại thông tin hậu trường, mặc dù một số
cho phép bạn lưu tệp dưới dạng "Chỉ văn bản". Bạn cũng có thể tải xuống các trình soạn thảo văn bản được thiết kế
đặc biệt cho lập trình, chẳng hạn như Textpad (http://www.textpad.com/>) và UltraEdit
(http://www.ultraedit.com/>), trong số những người khác.

Nếu bạn đang sử dụng MacOS, các mối quan tâm tương tự cũng áp dụng. MacPerl (dành cho môi trường Cổ điển) đi kèm
với một trình soạn thảo đơn giản. Các trình chỉnh sửa bên ngoài phổ biến là BBEdit (
<http://www.barebones.com/products/bbedit/>) hoặc Alpha (
<http://www.his.com/~jguyer/Alpha/Alpha8.html>). Người dùng MacOS X có thể sử dụng trình chỉnh sửa Unix như
tốt.

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

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

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

Jedhttp://space.mit.edu/~davis/jed/>

hoặc một bản sao vi như

Vimhttp://www.vim.org/>

Hèn hạ
<http://dickey.his.com/vile/vile.html>

Sau đây là trình soạn thảo / IDE đa ngôn ngữ Win32 hỗ trợ Perl:

ĐaSửa đổi
<http://www.MultiEdit.com/>

SlickSửa đổi
<http://www.slickedit.com/>

Định nghĩa bài văn
<http://www.contexteditor.org/>

Ngoài ra còn có một trình soạn thảo dựa trên tiện ích con Toyedit Text được viết bằng Perl được phân phối với
mô-đun Tk trên CPAN. Ptkdb (http://ptkdb.sourceforge.net/>) dựa trên Perl / Tk
trình gỡ lỗi hoạt động như một môi trường phát triển. Perl Composer (
<http://perlcomposer.sourceforge.net/>) là một IDE để tạo Perl / Tk GUI.

Ngoài một trình soạn thảo / IDE, bạn có thể quan tâm đến một môi trường shell mạnh mẽ hơn
cho Win32. Các tùy chọn của bạn bao gồm

bash
từ gói Cygwin (http://cygwin.com/>)

zshhttp://www.zsh.org/>

Cygwin được bao phủ bởi Giấy phép Công cộng GNU (nhưng điều đó không thành vấn đề đối với Perl
sử dụng). Cygwin chứa (ngoài shell) một bộ Unix tiêu chuẩn toàn diện
các tiện ích của bộ công cụ.

BBEdit và TextWrangler
là các trình soạn thảo văn bản cho OS X có chế độ độ nhạy Perl (
<http://www.barebones.com/>).

Ở đâu có thể I được Perl macro cho vi?
Để có phiên bản hoàn chỉnh của tệp cấu hình vi của Tom Christiansen, hãy xem
<http://www.cpan.org/authors/Tom_Christiansen/scripts/toms.exrc.gz>, tiêu chuẩn
tệp điểm chuẩn cho trình giả lập vi. Tệp chạy tốt nhất với nvi, phiên bản hiện tại của vi
ra khỏi Berkeley, mà tình cờ có thể được xây dựng với trình thông dịch Perl được nhúng - xem
<http://www.cpan.org/src/misc/>.

Ở đâu có thể I được chế độ perl or chế độ cperl cho emac?
Kể từ phiên bản Emacs 19 patchlevel 22 trở lên, đã có cả perl-mode.el và
hỗ trợ cho trình gỡ lỗi Perl được tích hợp sẵn. Chúng phải đi kèm với Emacs 19 tiêu chuẩn
phân phối.

Lưu ý rằng chế độ perl của emacs sẽ phù hợp với "main'foo" (trích dẫn đơn) và lộn xộn
lên thụt lề và tô sáng. Có thể bạn đang sử dụng "main :: foo" trong mã Perl mới
Dù sao, vì vậy đây không phải là một vấn đề.

Đối với CPerlMode, hãy xemhttp://www.emacswiki.org/cgi-bin/wiki/CPerlMode>

Làm thế nào có thể I sử dụng nguyền rủa với ngôn ngữ Perl?
Mô-đun Lời nguyền từ CPAN cung cấp giao diện mô-đun đối tượng có thể tải động cho
thư viện chửi rủa. Một bản demo nhỏ có thể được tìm thấy tại thư mục
<http://www.cpan.org/authors/Tom_Christiansen/scripts/rep.gz>; chương trình này lặp lại một
ra lệnh và cập nhật màn hình nếu cần, kết xuất đại diện ps rìu tương tự như hàng đầu.

Làm thế nào có thể I viết a GUI (X, Tk, Gtk, vv) in ngôn ngữ Perl?
(do Ben Morrow đóng góp)

Có một số mô-đun cho phép bạn viết GUI trong Perl. Hầu hết các bộ công cụ GUI đều có
giao diện perl: một danh sách không đầy đủ sau đây.

Tk Cái này hoạt động trên Unix và Windows, và phiên bản hiện tại trông không tệ bằng một nửa
trong Windows như trước đây. Một số yếu tố gui vẫn không 'cảm thấy' đúng lắm,
mặc dù. Giao diện rất tự nhiên và 'sang trọng', giúp bạn dễ dàng sử dụng trong phạm vi nhỏ
kịch bản chỉ cần một gui đơn giản. Nó đã không được cập nhật trong một thời gian.

Wx Đây là ràng buộc Perl cho bộ công cụ wxWidgets đa nền tảng (
<http://www.wxwidgets.org>). Nó hoạt động dưới Unix, Win32 và Mac OS X, sử dụng bản gốc
widget (Gtk trong Unix). Giao diện tuân theo giao diện C ++ chặt chẽ, nhưng
tài liệu hơi thưa thớt đối với những người không biết thư viện, hầu hết chỉ
giới thiệu bạn đến tài liệu C ++.

Gtk và Gtk2
Đây là các ràng buộc Perl cho bộ công cụ Gtk (http://www.gtk.org>). Giao diện
đã thay đổi đáng kể giữa phiên bản 1 và 2 để chúng có các mô-đun Perl riêng biệt. Nó
chạy dưới Unix, Win32 và Mac OS X (hiện tại nó yêu cầu máy chủ X trên Mac OS, nhưng
một cổng 'gốc' đang được tiến hành) và các tiện ích con trông giống nhau trên mọi nền tảng: tức là
chúng không khớp với các widget gốc. Như với Wx, các ràng buộc Perl tuân theo API C
chặt chẽ và tài liệu yêu cầu bạn đọc tài liệu C để hiểu
nó.

Win32 :: GUI
Điều này cung cấp quyền truy cập vào hầu hết các widget Win32 GUI từ Perl. Rõ ràng, nó chỉ
chạy dưới Win32 và sử dụng các widget gốc. Giao diện Perl không thực sự tuân theo
giao diện C: nó được làm cho Perlish hơn và tài liệu hướng dẫn khá tốt.
Những nội dung nâng cao hơn có thể yêu cầu bạn phải quen thuộc với các API C Win32 hoặc tham khảo
MSDN.

Lạc ĐàXương
CamelBones (http://camelbones.sourceforge.net>) là giao diện Perl cho Mac OS X's
Bộ công cụ Cocoa GUI, và như vậy có thể được sử dụng để tạo GUI gốc trên Mac OS X. Đó là
không phải trên CPAN, vì nó yêu cầu các khuôn khổ mà CPAN.pm không biết cách cài đặt, nhưng
cài đặt thông qua trình cài đặt gói OSX tiêu chuẩn. API Perl, một lần nữa, rất
gần với API objC mà nó đang gói và tài liệu chỉ cho bạn biết cách
dịch từ cái này sang cái kia.

Qt Có một giao diện Perl cho bộ công cụ Qt của TrollTech, nhưng nó không có vẻ là
duy trì.

Athena
Sx là một giao diện của bộ widget Athena đi kèm với X, nhưng nó lại xuất hiện
không được sử dụng nhiều ngày nay.

Làm thế nào có thể I làm cho my Perl chương trình chạy nhanh hơn?
Cách tốt nhất để làm điều này là đưa ra một thuật toán tốt hơn. Điều này thường có thể làm cho một
sự khác biệt ấn tượng. Sách của Jon Bentley Lập trình Ngọc trai (đó không phải là lỗi chính tả!)
cũng có một số mẹo hay về tối ưu hóa. Lời khuyên về điểm chuẩn tổng hợp thành: điểm chuẩn
và hồ sơ để đảm bảo bạn đang tối ưu hóa đúng phần, tìm kiếm các thuật toán tốt hơn
thay vì vi chỉnh mã của bạn và khi vẫn thất bại, hãy cân nhắc mua nhanh hơn
phần cứng. Bạn có thể sẽ muốn đọc câu trả lời cho câu hỏi trước đó "Làm cách nào để
hồ sơ các chương trình Perl của tôi? "nếu bạn chưa làm như vậy.

Một cách tiếp cận khác là tự động tải mã Perl hiếm khi được sử dụng. Xem AutoSplit và
Mô-đun AutoLoader trong bản phân phối tiêu chuẩn cho điều đó. Hoặc bạn có thể xác định vị trí
nút cổ chai và nghĩ về việc chỉ viết phần đó bằng C, theo cách chúng ta đã từng làm
tắc nghẽn trong mã C và viết chúng trong trình hợp dịch. Tương tự như viết lại trong C, các mô-đun
có các phần quan trọng có thể được viết bằng C (ví dụ: mô-đun PDL từ CPAN).

Nếu bạn hiện đang liên kết tệp thực thi perl của mình với một tệp được chia sẻ libc.so, bạn thường có thể đạt được một
Lợi ích hiệu suất 10-25% bằng cách xây dựng lại nó để liên kết với libc.a tĩnh. Điều này
sẽ tạo ra một tệp thực thi perl lớn hơn, nhưng các chương trình Perl của bạn (và các lập trình viên) có thể cảm ơn bạn
cho nó. Xem INSTALL tệp trong bản phân phối nguồn để biết thêm thông tin.

Chương trình undump là một nỗ lực cổ xưa để tăng tốc chương trình Perl bằng cách lưu trữ-
dạng biên dịch sang đĩa. Đây không còn là một lựa chọn khả thi nữa, vì nó chỉ hoạt động trên một số
kiến trúc, và dù sao cũng không phải là một giải pháp tốt.

Làm thế nào có thể I làm cho my Perl chương trình lấy ít kỉ niệm?
Khi nói đến sự cân bằng không gian thời gian, Perl gần như luôn thích ném bộ nhớ vào
vấn đề. Vô hướng trong Perl sử dụng nhiều bộ nhớ hơn chuỗi trong C, mảng chiếm nhiều hơn thế,
và hàm băm sử dụng nhiều hơn. Mặc dù vẫn còn nhiều việc phải làm, nhưng các bản phát hành gần đây đã
giải quyết những vấn đề này. Ví dụ: kể từ 5.004, các khóa băm trùng lặp được chia sẻ giữa các
tất cả các hàm băm bằng cách sử dụng chúng, vì vậy không yêu cầu phân bổ lại.

Trong một số trường hợp, sử dụng substr () or vec () để mô phỏng mảng có thể mang lại nhiều lợi ích. Vì
ví dụ, một mảng một nghìn boolean sẽ chiếm ít nhất 20,000 byte không gian, nhưng nó
có thể được chuyển thành một vector bit 125 byte - tiết kiệm bộ nhớ đáng kể. Chuẩn mực
Tie :: SubstrHash module cũng có thể trợ giúp cho một số kiểu cấu trúc dữ liệu nhất định. Nếu bạn
làm việc với các cấu trúc dữ liệu chuyên dụng (ví dụ: ma trận) mô-đun triển khai
những thứ này trong C có thể sử dụng ít bộ nhớ hơn các mô-đun Perl tương đương.

Một điều khác cần thử là tìm hiểu xem Perl của bạn đã được biên dịch với hệ thống malloc hay
với malloc nội trang của Perl. Cho dù đó là cái nào, hãy thử sử dụng cái kia và xem liệu
điều này tạo ra sự khác biệt. Thông tin về malloc có trong INSTALL tập tin trong nguồn
phân bổ. Bạn có thể tìm hiểu xem mình có đang sử dụng perl's malloc hay không bằng cách nhập "perl
-V: usemymalloc ”.

Tất nhiên, cách tốt nhất để tiết kiệm bộ nhớ là không làm bất cứ điều gì để lãng phí bộ nhớ trong lần đầu tiên
địa điểm. Các phương pháp lập trình tốt có thể giúp bạn đạt được điều này một cách lâu dài:

Đừng húp!
Đừng đọc toàn bộ tệp vào bộ nhớ nếu bạn có thể xử lý từng dòng một. Hoặc nhiều hơn
cụ thể, sử dụng một vòng lặp như sau:

#
# Ý tưởng tốt
#
while ($ line = <$ file_handle> của tôi>) {
#...
}

thay vì cái này:

#
# Ý tưởng tồi
#
@data của tôi = <$ file_handle>;
tìm kiếm (@data) {
#...
}

Khi tệp bạn đang xử lý có dung lượng nhỏ, bạn làm theo cách nào không quan trọng
nhưng nó tạo ra sự khác biệt rất lớn khi chúng bắt đầu lớn hơn.

Sử dụng bản đồ và grep một cách có chọn lọc
Hãy nhớ rằng cả bản đồ và grep đều mong đợi một đối số LIST, vì vậy hãy làm như sau:

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

sẽ làm cho toàn bộ tệp bị chuyển sang dạng slurped. Đối với các tệp lớn, tốt hơn nên lặp lại:

trong khi (<$ file_handle>) {
push (@wised, $ _) if / pattern /;
}

Tránh trích dẫn không cần thiết và chuỗi ký tự
Không trích dẫn các chuỗi lớn trừ khi thực sự cần thiết:

$ copy = "$ large_string" của tôi;

tạo 2 bản sao của $ large_string (một bản cho $ copy và một bản khác cho dấu ngoặc kép), ngược lại

$ copy = $ large_string của tôi;

chỉ tạo một bản sao.

Ditto để xâu chuỗi các mảng lớn:

{
địa phương $, = "\ n";
in @big_array;
}

tiết kiệm bộ nhớ hơn nhiều so với

in tham gia "\ n", @big_array;

or

{
địa phương $ "=" \ n ";
in "@big_array";
}

Chuyển qua tài liệu tham khảo
Truyền mảng và băm theo tham chiếu, không phải theo giá trị. Đối với một điều, đó là cách duy nhất để
chuyển nhiều danh sách hoặc hàm băm (hoặc cả hai) trong một lần gọi / trả về. Nó cũng tránh
tạo một bản sao của tất cả nội dung. Tuy nhiên, điều này đòi hỏi một số phán đoán, bởi vì
bất kỳ thay đổi nào sẽ được truyền trở lại dữ liệu ban đầu. Nếu bạn thực sự muốn mangle
(ờ, sửa đổi) một bản sao, bạn sẽ phải hy sinh bộ nhớ cần thiết để tạo một bản sao.

Buộc các biến lớn vào đĩa
Đối với các kho dữ liệu "lớn" (tức là những kho vượt quá bộ nhớ khả dụng), hãy cân nhắc sử dụng một trong các
các mô-đun DB để lưu trữ nó trên đĩa thay vì trong RAM. Điều này sẽ phải chịu một hình phạt trong
thời gian truy cập, nhưng điều đó có lẽ tốt hơn là khiến đĩa cứng của bạn bị hỏng do
hoán đổi lớn.

Is it an toàn đến trở lại a tài liệu tham khảo đến địa phương or từ vựng dữ liệu?
Đúng. Hệ thống thu gom rác của Perl đảm nhận việc này để mọi thứ diễn ra bình thường.

phụ makeone {
@a của tôi = (1 .. 10);
quay lại \ @a;
}

cho (1 .. 10) {
push @many, makeone ();
}

in $ nhiều [4] [5], "\ n";

print "@many \ n";

Làm thế nào có thể I tự do an mảng or băm so my chương trình thu nhỏ lại?
(do Michael Carman đóng góp)

Bạn thường không thể. Bộ nhớ được phân bổ cho từ vựng (tức là của tôi() biến) không thể được lấy lại
hoặc được sử dụng lại ngay cả khi chúng vượt ra khỏi phạm vi. Nó được bảo lưu trong trường hợp các biến quay trở lại
vào phạm vi. Bộ nhớ được cấp phát cho các biến toàn cục có thể được sử dụng lại (trong chương trình của bạn) bằng cách
sử dụng undef () và / hoặc xóa bỏ().

Trên hầu hết các hệ điều hành, bộ nhớ được cấp cho một chương trình không bao giờ có thể được trả lại cho
hệ thống. Đó là lý do tại sao các chương trình chạy lâu đôi khi tự thực thi lại. Một số hoạt động
hệ thống (đáng chú ý là các hệ thống sử dụng mmap(2) để phân bổ khối lượng lớn bộ nhớ) có thể
lấy lại bộ nhớ không còn được sử dụng, nhưng trên các hệ thống như vậy, perl phải được định cấu hình và
được biên dịch để sử dụng malloc của hệ điều hành, không phải perl.

Nói chung, phân bổ và khử phân bổ bộ nhớ không phải là điều bạn có thể hoặc nên làm
lo lắng về nhiều điều ở Perl.

Xem thêm "Làm cách nào để làm cho chương trình Perl của tôi chiếm ít bộ nhớ hơn?"

Làm thế nào có thể I làm cho my CGI kịch bản chi tiết Có hiệu quả?
Ngoài các biện pháp thông thường được mô tả để làm cho các chương trình Perl chung nhanh hơn hoặc nhỏ hơn, a
Chương trình CGI có các vấn đề bổ sung. Nó có thể được chạy vài lần mỗi giây. Cho rằng mỗi
thời gian chạy nó sẽ cần được biên dịch lại và thường sẽ phân bổ một megabyte hoặc nhiều hơn
bộ nhớ hệ thống, đây có thể là một kẻ giết người. Biên dịch thành C không phải đi đến giúp đỡ bạn bởi vì
chi phí khởi động quy trình chính là điểm nghẽn.

Có ba cách phổ biến để tránh chi phí này. Một giải pháp liên quan đến việc chạy
Máy chủ Apache HTTP (có sẵn từhttp://www.apache.org/>) với một trong hai mod_perl
hoặc mô-đun plugin mod_fastcgi.

Với mod_perl và mô-đun Apache :: Registry (được phân phối với mod_perl), httpd sẽ chạy
với một trình thông dịch Perl được nhúng để biên dịch trước tập lệnh của bạn và sau đó thực thi nó
trong cùng một không gian địa chỉ mà không cần phân nhánh. Phần mở rộng Apache cũng cấp cho Perl quyền truy cập
tới API máy chủ nội bộ, vì vậy các mô-đun được viết bằng Perl có thể thực hiện bất cứ điều gì mà một mô-đun
viết bằng C can. Để biết thêm về mod_perl, hãy xemhttp://perl.apache.org/>

Với mô-đun FCGI (từ CPAN) và mô-đun mod_fastcgi (có sẵn từ
<http://www.fastcgi.com/>) mỗi chương trình Perl của bạn trở thành một daemon CGI vĩnh viễn
quá trình.

Cuối cùng, Plack là một mô-đun Perl và bộ công cụ có chứa phần mềm trung gian PSGI, trình trợ giúp và
bộ điều hợp với máy chủ web, cho phép bạn dễ dàng triển khai các tập lệnh có thể tiếp tục chạy,
và cung cấp tính linh hoạt liên quan đến máy chủ web bạn sử dụng. Nó có thể cho phép hiện tại
Các tập lệnh CGI để tận hưởng sự linh hoạt và hiệu suất này với những thay đổi tối thiểu hoặc có thể được sử dụng
cùng với các khung web Perl hiện đại để viết và triển khai các dịch vụ web với Perl
một làn gió.

Những giải pháp này có thể có những ảnh hưởng sâu rộng đến hệ thống của bạn và trên cách bạn viết
Các chương trình CGI, vì vậy hãy điều tra chúng một cách cẩn thận.

Xem thêmhttp://www.cpan.org/modules/by-category/15_World_Wide_Web_HTML_HTTP_CGI/>.

Làm thế nào có thể I ẩn các nguồn cho my Perl chương trình?
Xóa đi. :-) Nghiêm túc mà nói, có một số giải pháp (chủ yếu là không đạt yêu cầu) với
các mức độ "bảo mật" khác nhau.

Trước hết, tuy nhiên, bạn không thể tước quyền đọc, vì mã nguồn phải
có thể đọc được để được biên dịch và diễn giải. (Điều đó không có nghĩa là CGI
nguồn của script có thể được đọc bởi những người trên web - chỉ bởi những người có quyền truy cập vào
hệ thống tệp.) Vì vậy, bạn phải để lại các quyền tại 0755 thân thiện với xã hội
cấp độ.

Một số người coi đây là một vấn đề bảo mật. Nếu chương trình của bạn thực hiện những điều không an toàn và
dựa vào những người không biết cách khai thác những bất an đó, nó không an toàn. Nó là
thường có thể để ai đó xác định những điều không an toàn và khai thác chúng mà không
đang xem nguồn. Bảo mật thông qua sự che đậy, tên để ẩn lỗi của bạn thay vì
sửa chữa chúng, thực sự là rất ít bảo mật.

Bạn có thể thử sử dụng mã hóa thông qua bộ lọc nguồn (Bắt đầu từ Perl 5.8, Bộ lọc :: Đơn giản
và Bộ lọc :: Util :: Mô-đun cuộc gọi được bao gồm trong phân phối chuẩn), nhưng bất kỳ
lập trình viên sẽ có thể giải mã nó. Bạn có thể thử sử dụng trình biên dịch mã byte và
trình thông dịch được mô tả sau trong perlfaq3, nhưng người tò mò vẫn có thể giải mã
nó. Bạn có thể thử sử dụng trình biên dịch mã gốc được mô tả sau, nhưng những người bẻ khóa có thể
để tháo rời nó. Những tư thế này có mức độ khó khác nhau đối với những người muốn thực hiện
mã của bạn, nhưng không có mã nào có thể che giấu nó một cách dứt khoát (đúng với mọi ngôn ngữ, không chỉ Perl).

Rất dễ dàng khôi phục nguồn của các chương trình Perl. Bạn chỉ cần cung cấp chương trình cho
trình thông dịch perl và sử dụng các mô-đun trong hệ thống phân cấp B ::. Mô-đun B :: Deparse phải là
có thể đánh bại hầu hết các nỗ lực để ẩn nguồn. Một lần nữa, điều này không phải là duy nhất đối với Perl.

Nếu bạn lo lắng về việc mọi người thu lợi từ mã của bạn, thì điểm mấu chốt là
không có gì ngoài một giấy phép hạn chế sẽ cung cấp cho bạn sự an toàn hợp pháp. Cấp phép phần mềm của bạn và
tiêu diệt nó bằng những tuyên bố đe dọa như "Đây là phần mềm độc quyền chưa được xuất bản của
XYZ Corp. Quyền truy cập của bạn vào nó không cho phép bạn sử dụng nó blah blah blah. "Chúng tôi
tất nhiên không phải là luật sư, vì vậy bạn nên gặp luật sư nếu bạn muốn chắc chắn
từ ngữ của giấy phép sẽ được đưa ra trước tòa.

Làm thế nào có thể I biên dịch my Perl chương trình trong byte or C?
(đóng góp bởi brian d foy)

Nói chung, bạn không thể làm điều này. Có một số điều có thể phù hợp với tình huống của bạn
mặc dù. Mọi người thường hỏi câu hỏi này vì họ muốn phân phối các tác phẩm của mình
mà không cần cung cấp mã nguồn, và hầu hết các giải pháp đều sử dụng không gian đĩa để thuận tiện.
Bạn có thể sẽ không thấy tốc độ tăng nhiều, vì hầu hết các giải pháp chỉ đơn giản là gói
trình thông dịch Perl trong sản phẩm cuối cùng (nhưng hãy xem "Làm cách nào để chạy chương trình Perl của tôi
nhanh hơn? ").

Bộ công cụ lưu trữ Perl (http://par.perl.org/>) là tương tự của Perl với JAR của Java. Của nó
có sẵn miễn phí và trên CPAN (http://search.cpan.org/dist/PAR/>).

Cũng có một số sản phẩm thương mại có thể phù hợp với bạn, mặc dù bạn phải mua
giấy phép cho họ.

Bộ Perl Dev (http://www.activestate.com/Products/Perl_Dev_Kit/>) từ ActiveState
có thể "Biến các chương trình Perl của bạn thành các tệp thực thi sẵn sàng chạy cho HP-UX, Linux, Solaris và
Các cửa sổ."

Perl2Exe (http://www.indigostar.com/perl2exe.htm>) là một chương trình dòng lệnh cho
chuyển đổi các tập lệnh perl thành các tệp thực thi. Nó nhắm mục tiêu cả nền tảng Windows và Unix.

Làm thế nào có thể I được "#! perl" đến công việc on [MS-DOS, NT, ...]?
Đối với OS / 2 chỉ cần sử dụng

extproc Perl -S -your_switches

là dòng đầu tiên trong tệp "* .cmd" ("-S" do lỗi trong xử lý "extproc" của cmd.exe). Vì
DOS trước tiên người ta phải phát minh ra một tệp hàng loạt tương ứng và mã hóa nó trong
"ALTERNATE_SHEBANG" (xem dosish.h tệp trong bản phân phối nguồn để biết thêm
thông tin).

Cài đặt Win95 / NT, khi sử dụng cổng ActiveState của Perl, sẽ sửa đổi
Cơ quan đăng ký để liên kết phần mở rộng ".pl" với trình thông dịch perl. Nếu bạn cài đặt
một cổng khác, thậm chí có thể xây dựng Win95 / NT Perl của riêng bạn từ các nguồn tiêu chuẩn bằng cách
bằng cách sử dụng cổng gcc của Windows (ví dụ: với cygwin hoặc mingw32), sau đó bạn sẽ phải sửa đổi
Đăng ký cho mình. Ngoài việc liên kết ".pl" với trình thông dịch, người NT có thể
sử dụng: "SET PATHEXT =% PATHEXT% ;. PL" để cho phép họ chạy chương trình "install-linux.pl" chỉ bằng cách
gõ "install-linux".

Trong MacOS "Cổ điển", một chương trình perl sẽ có Trình tạo và Loại thích hợp, để
bấm đúp vào chúng sẽ gọi ứng dụng MacPerl. Trong Mac OS X, các ứng dụng có thể nhấp
có thể được tạo từ bất kỳ "#!" script sử dụng tiện ích DropScript của Wil Sanchez:
<http://www.wsanchez.net/software/>.

QUAN TRỌNG!: Dù bạn làm gì, VUI LÒNG đừng bực bội, và chỉ cần ném perl
thông dịch viên vào thư mục cgi-bin của bạn, để các chương trình của bạn hoạt động trên web
máy chủ. Đây là một rủi ro bảo mật CỰC KỲ lớn. Dành thời gian để tìm ra cách làm điều đó
đúng.

Có thể I viết hữu ích Perl chương trình on các lệnh hàng?
Đúng. Đọc perlrun để biết thêm thông tin. Một số ví dụ sau đây. (Chúng giả sử Unix tiêu chuẩn
quy tắc trích dẫn shell.)

# tổng các trường đầu tiên và cuối cùng
perl -lane 'print $ F [0] + $ F [-1]' *

# xác định tệp văn bản
perl -le 'cho (@ARGV) {print if -f && -T _}' *

# xóa (hầu hết) nhận xét khỏi chương trình C
perl -0777 -pe 's {/\*.*?\*/} {} gs' foo.c

# tạo tệp trẻ hơn một tháng so với ngày hôm nay, đánh bại daemon thần chết
perl -e '$ X = 24 * 60 * 60; utime (time (), time () + 30 * $ X, @ ARGV) '*

# tìm uid chưa sử dụng đầu tiên
perl -le '$ i ++ trong khi getpwuid ($ i); in $ i '

# hiển thị đường dẫn hợp lý
echo $ PATH | perl -nl -072 -e '
s! [^ / +] * $! man! && - d &&! $ s {$ _} ++ && push @ m, $ _; HẾT {print "@m"} '

OK, bài cuối cùng thực sự là một bài dự thi Cuộc thi Perl Obfuscated. :-)

Tại sao không Perl một lớp lót công việc on my DOS / Mac / VMS hệ thống?
Vấn đề thường là các trình thông dịch lệnh trên các hệ thống đó có
các ý tưởng khác nhau về trích dẫn so với Unix shell mà dưới đó là một lớp lót
tạo. Trên một số hệ thống, bạn có thể phải thay đổi dấu ngoặc đơn thành dấu ngoặc kép, mà bạn
phải KHÔNG làm trên hệ thống Unix hoặc Plan9. Bạn cũng có thể phải thay đổi một% thành %%.

Ví dụ:

# Unix (bao gồm cả Mac OS X)
perl -e 'print "Hello world \ n"'

# DOS, v.v.
perl -e "print \" Hello world \ n \ ""

# Mac cổ điển
in "Hello world \ n"
(sau đó Chạy "Myscript" hoặc Shift-Command-R)

#MPW
perl -e 'print "Hello world \ n"'

#VMS
perl -e "print" "Xin chào thế giới \ n" ""

Vấn đề là không có ví dụ nào trong số này là đáng tin cậy: chúng phụ thuộc vào lệnh
thông dịch viên. Dưới Unix, hai phần đầu tiên thường hoạt động. Theo DOS, hoàn toàn có thể xảy ra
không hoạt động. Nếu 4DOS là lệnh shell, có lẽ bạn sẽ gặp may mắn hơn như thế này:

perl -e "in "Xin chào thế giới \ n ""

Đối với Mac, nó phụ thuộc vào môi trường bạn đang sử dụng. MacPerl shell, hoặc MPW, là
giống như Unix shell trong việc hỗ trợ một số biến thể trích dẫn, ngoại trừ việc nó làm cho
sử dụng miễn phí các ký tự không phải ASCII của Mac làm ký tự điều khiển.

Sử dụng qq (), q () và qx (), thay vì "dấu ngoặc kép", 'dấu ngoặc đơn' và `dấu ngoặc kép`,
có thể làm cho một lớp lót dễ viết hơn.

Không có giải pháp chung cho tất cả những điều này. Nó là một mớ hỗn độn.

[Một số câu trả lời này được đóng góp bởi Kenneth Albanowski.]

Ở đâu có thể I kiến thức về CGI or web lập trình in ngôn ngữ Perl?
Đối với các mô-đun, hãy lấy các mô-đun CGI hoặc LWP từ CPAN. Đối với sách giáo khoa, đặc biệt xem hai
dành riêng cho nội dung web trong câu hỏi về sách. Đối với các vấn đề và câu hỏi liên quan đến
web, chẳng hạn như "Tại sao tôi gặp 500 lỗi" hoặc "Tại sao nó không chạy từ trình duyệt ngay khi nó
chạy tốt trên dòng lệnh ", hãy xem hướng dẫn khắc phục sự cố và tài liệu tham khảo trong perlfaq9
hoặc trong CGI MetaFAQ:

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

Mặc dù vậy, việc xem xét Plack và các khung công tác web Perl hiện đại là rất nên làm; web
lập trình ở Perl đã phát triển một chặng đường dài so với ngày xưa của các tập lệnh CGI đơn giản.

Ở đâu có thể I kiến thức về hướng đối tượng Perl lập trình?
Một nơi tốt để bắt đầu là perlootut và bạn có thể sử dụng perlobj để tham khảo.

Một cuốn sách hay về OO trên Perl là "Perl hướng đối tượng" của Damian Conway từ Manning
Ấn phẩm, hoặc "Intermediate Perl" của Randal Schwartz, brian d foy và Tom Phoenix từ
O'Reilly Media.

Ở đâu có thể I kiến thức về liên kết C với ngôn ngữ Perl?
Nếu bạn muốn gọi C từ Perl, hãy bắt đầu với perlxstut, chuyển sang perlxs, xsubpp và
perlguts. Nếu bạn muốn gọi Perl từ C, thì hãy đọc perlembed, perlcall và perlguts.
Đừng quên rằng bạn có thể học được nhiều điều từ việc xem cách các tác giả của
các mô-đun mở rộng đã viết mã của chúng và giải quyết các vấn đề của chúng.

Bạn có thể không cần tất cả sức mạnh của XS. Mô-đun Inline :: C cho phép bạn đặt mã C trực tiếp
trong nguồn Perl của bạn. Nó xử lý tất cả các phép thuật để làm cho nó hoạt động. Bạn vẫn phải học ở
ít nhất một số API perl nhưng bạn sẽ không phải đối phó với sự phức tạp của XS
các tệp hỗ trợ.

tôi có đọc đi ngang qua, quả óc chó, v.v. nhưng I không thể nhúng perl in my C chương trình; am I làm
Sai lầm?
Tải xuống bộ ExtUtils :: Embed từ CPAN và chạy `` thử nghiệm ''. Nếu các bài kiểm tra vượt qua, hãy đọc
các vỏ một lần nữa và một lần nữa và một lần nữa. Nếu chúng không thành công, hãy xem perlbug và gửi báo cáo lỗi với
đầu ra của "thực hiện kiểm tra TEST_VERBOSE = 1" cùng với "perl -V".

Thời Gian I cố gắng đến chạy my kịch bản, I điều này thông điệp. Điều gì làm it nghĩa là gì?
Có thể tìm thấy danh sách đầy đủ các thông báo lỗi và cảnh báo của Perl với văn bản giải thích
trong perldiag. Bạn cũng có thể sử dụng chương trình biểu tượng (được phân phối với Perl) để giải thích
thông báo lỗi:

chương trình perl 2> Diag.out
splain [-v] [-p] Diag.out

hoặc thay đổi chương trình của bạn để giải thích các thông báo cho bạn:

sử dụng chẩn đoán;

or

sử dụng chẩn đoán -verbose;

Có gì MakeMaker?
(đóng góp bởi brian d foy)

Mô-đun ExtUtils :: MakeMaker, hay còn được gọi đơn giản là "MakeMaker", biến một tập lệnh Perl,
thường được gọi là "Makefile.PL", thành một Makefile. Công cụ Unix "make" sử dụng tệp này để
quản lý các phụ thuộc và các hành động để xử lý và cài đặt một bản phân phối Perl.

TÁC GIẢ BẢN QUYỀN


Bản quyền (c) 1997-2010 Tom Christiansen, Nathan Torkington, và các tác giả khác như đã lưu ý.
Tất cả quyền được bảo lưu.

Tài liệu này là miễn phí; bạn có thể phân phối lại nó và / hoặc sửa đổi nó theo các điều khoản tương tự
như chính Perl.

Bất kể phân phối của nó, tất cả các ví dụ mã ở đây đều thuộc phạm vi công cộng. Bạn là
được phép và khuyến khích sử dụng mã này và bất kỳ dẫn xuất nào của chúng trong các chương trình của riêng bạn
để giải trí hoặc vì lợi nhuận khi bạn thấy phù hợp. Một nhận xét đơn giản trong mã cung cấp tín dụng cho
Câu hỏi thường gặp sẽ nhã nhặn nhưng không bắt buộc.

Sử dụng perlfaq3 trực tuyến bằng các dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

Lệnh Linux

Ad




×
quảng cáo
❤️Mua sắm, đặt phòng hoặc mua tại đây — không mất phí, giúp duy trì các dịch vụ miễn phí.