Trang Chủ Tài chính Cá nhân ĐIều chỉnh Mười Chương trình Perl Ngắn, hữu ích - những người có đầu

ĐIều chỉnh Mười Chương trình Perl Ngắn, hữu ích - những người có đầu

Mục lục:

Video: meteor.js by Roger Zurawicki 2025

Video: meteor.js by Roger Zurawicki 2025
Anonim

Một số người tin rằng các chương trình ngắn không tốt cho rất nhiều, nhưng không phải như vậy với Perl. Chỉ cần một vài dòng mã Perl có thể đi một chặng đường dài. Bài viết này liệt kê một số chương trình Perl dành cho thiếu niên, hữu ích.

Thu thập các đường duy nhất

Nếu tệp văn bản của bạn có nhiều dòng trùng lặp và bạn chỉ muốn xem các đường duy nhất, bạn có thể thu thập chúng vào một mảng (trong trường hợp này, nó được gọi là @Unique) với chương trình sau:

mở (IN, "somefile. Txt"); @ Unique = ();

while () {except ($ i {$ _} ++) {push (@Unique, $ _)}}

Bí quyết ở đây là $ i {$ _} ++ trả về 0 lần đầu tiên bạn tạo một cặp khóa-giá trị với $ _ làm khoá, và một số giá trị khác sau đó.

Loại bỏ nhiều dòng trống

Một số tệp văn bản có nhiều dòng trống, liên tục, làm cho chúng khó đọc, đặc biệt trên màn hình nhỏ. Chương trình sau in một tập tin văn bản, nén tất cả các trường hợp của hai hoặc nhiều dòng trống vào một dòng trống.

Lưu ý: Dòng trống có thể có các ký tự khoảng trắng trong đó, chẳng hạn như không gian và các tab nhưng không có ký tự hiển thị được.

mở (IN, "somefile. Txt"); $ PrevBlank = 0;

while () {

if (/ S / or! $ PrevBlank) {print $ _}

$ PrevBlank = / ^ s * $ /;

}

Câu lệnh if trong ví dụ trước là true nếu có các ký tự nonblank trên dòng hoặc nếu dòng trước không phải là trống. Công việc $ PrevBlank cho bạn biết dòng hiện tại có trống, có nghĩa là nó có không hoặc nhiều ký tự khoảng trắng và không có gì khác.

In dòng từ một tập tin theo thứ tự sắp xếp

Thật dễ dàng quên đi chức năng sắp xếp hữu ích của Perl. Chương trình sau đây đọc toàn bộ tập tin vào một mảng, sắp xếp mảng, và in ra kết quả. Ngắn và ngọt, và khá hiệu quả khi khởi động:

open (IN, "somefile. Txt");

in phân loại ();

In một dãy các đường từ một tập tin

Bạn đã bao giờ muốn đọc chỉ một vài dòng từ một tập tin, chứ không phải toàn bộ điều? Chương trình sau chỉ in ra một dãy các dòng. Bạn chạy chương trình với hai đối số: phạm vi bạn muốn và tên tập tin. Ví dụ, nếu bạn đặt tên chương trình của bạn là "showline" và bạn muốn xem các dòng từ 10 đến 20 của tệp tin này. txt, bạn sử dụng dòng lệnh này:

showline 10-20 somefile. txt

Chương trình sau đây in một dải dòng:

mở (IN, $ ARGV [1]) hoặc chết "Không thể đọc $ File. n ";

($ Start, $ Stop) = split (/ - /, $ ARGV [0]);

cho ($ i = 1; $ i <= $ stop; $ i + = 1)

{$ Line =; Ví dụ về các tệp trong thư mục

Đôi khi, bạn có thể bỏ qua các thư mục con trong một thư mục và chỉ tập trung vào các tệp.Bạn có thể sử dụng test file -f để liệt kê tất cả các file trong một thư mục:

foreach $ f () {if (-f $ f) {print "$ fn"}}

Liệt kê một thư mục theo kích cỡ

Để sắp xếp, một danh mục thư mục bằng bất cứ thứ gì khác ngoài tên tập tin của nó, chương trình của bạn phải giữ một danh sách các hồ sơ bao gồm tên và các mục khác trong danh sách. Hash là tuyệt vời để sử dụng cho loại danh sách này có hồ sơ với một chìa khóa (tên tập tin) và một giá trị (các thông tin thư mục khác). Chương trình sau tạo một bảng băm liệt kê kích thước của mỗi tệp trong thư mục và sau đó sắp xếp các mục cho đầu ra. (Bạn có thể dễ dàng sửa đổi chương trình này để sắp xếp theo ngày thay vì theo kích cỡ)

foreach $ f () {$ i {$ f} = -s $ f};

foreach $ k (sắp xếp {$ i {$ b} <= & gt $ i {$ a}} phím% i)

{printf "% 8d% sn", $ i {$ k}, $ k }

Sắp xếp các thư mục theo phần mở rộng

Sắp xếp theo một phần của tên tệp là một quá trình khó khăn hơn so với phân loại theo kích thước tệp hoặc theo thời điểm tệp được sửa đổi. Chương trình sau phá vỡ tên tập tin thành hai phần và sắp xếp theo phần thứ hai. Nếu bạn đang chạy Perl trên hệ thống UNIX hoặc Macintosh, chương trình này chỉ có thể dự đoán được nếu các tên tập tin không có khoảng thời gian hoặc một khoảng thời gian:

foreach $ FullName () {

($ Name, $ Ext) = split /./, $ FullName, 2);

đẩy (@Temp, "$ Extt $ FullName");

}

foreach $ Val (sắp xếp (@Temp)) {

($ Ext, $ FullName) = split (/ t /, $ Val);

in "$ FullNamen";

}

Tạo một máy tính đơn giản

Cần bao giờ một máy tính đơn giản để sử dụng để loại bỏ một số toán học nhanh chóng và bẩn? Chương trình sau đây sử dụng chức năng eval của Perl để in ra các câu trả lời cho bất kỳ phương trình nào bạn nhập vào. Để kết thúc chương trình, hãy nhập một dòng trống. Đây là chương trình tạo máy tính của riêng bạn:

while () {

$ i = $ _; chomp ($ i); trừ khi ($ i) {last}

$ o = eval ($ i); in "Trả lời = $ trên";

}

Khi bạn chạy chương trình, bạn có thể nhập một cái gì đó như sau:

((2 ** 8) + (3 ** 8))

và bạn nhận được kết quả này: > Trả lời = 6817

Randomizing a list

Trong Perl, tạo ra các số ngẫu nhiên rất dễ, nhưng việc ngẫu nhiên hóa thứ tự của mảng không đơn giản. Tuy nhiên, bạn có thể sử dụng chức năng ghép nối để kéo một phần tử ngẫu nhiên từ một mảng và sau đó đặt phần tử vào mảng khác. Chương trình sau đây ngẫu nhiên hóa danh sách @MyList:

my @TempList = ();

while (@MyList)

{push (@TempList, splice (@MyList, rand (@MyList), 1))}

@MyList = @TempList;

Bí quyết ở đây là rand (@MyList) chọn một số từ 0 đến số phần tử trong @MilList, và nối số thay đổi số ngẫu nhiên này với một số nguyên.

Tạo mật khẩu nhớ ngẫu nhiên

Việc cố gắng thuyết phục người dùng máy tính tìm ra mật khẩu không dễ đoán là một trong những công việc khó khăn nhất của quản trị viên hệ thống. Mọi người luôn luôn muốn nhấn mạnh vào việc sử dụng ngày sinh của họ hoặc tên vật nuôi cho mật khẩu - vi phạm an ninh sau đó trở thành trò chơi của trẻ.

Chương trình sau tạo mật khẩu ngẫu nhiên. Tuy nhiên, thay vì sự lộn xộn của những chữ khó nhớ, mật khẩu có thể được ghi nhớ bởi vì chúng xuất hiện theo cặp phụ âm và nguyên âm có thể phát âm.Bằng cách kết hợp với nhau một vài âm tiết có vẻ ngớ ngẩn, bạn có thể tạo các cụm từ vô nghĩa dễ nhớ.

Mỗi âm tiết của mật khẩu có thể đại diện cho một trong 100 số; do đó, một mật khẩu bốn âm tiết đơn, chẳng hạn như

votahubo, là một trong số 100 mật khẩu có thể mà chương trình tạo ra. Có một quản trị viên hệ thống chỉ định các mật khẩu này cung cấp bảo mật hơn cho phép người dùng chọn mật khẩu của chính họ và dễ đoán: in "Nhập số hạt giống:"; $ s =; srand ($ s ^ thời gian);

@ c = split (/ * /, "bcdfghjklmnprstvwxyz");

@ v = split (/ * /, "aeiou");

cho ($ i = 1; $ i <= 4; $ i + = 1)

{print $ c [int (rand (20))], $ v [int (rand (5))] }

Hai dòng đầu tiên của chương trình này khởi tạo hạt giống cho các số ngẫu nhiên, và hai dòng tiếp theo tạo ra danh sách có 20 phụ âm (trừ

q) và 5 nguyên âm của bảng chữ cái. Vòng lặp for chỉ cần in bốn âm tiết.

ĐIều chỉnh Mười Chương trình Perl Ngắn, hữu ích - những người có đầu

Lựa chọn của người biên tập

Tài khoản Thị trường Các câu hỏi về kỳ thi loại 7 - núm vú

Tài khoản Thị trường Các câu hỏi về kỳ thi loại 7 - núm vú

Mỗi kỳ thi Series 7 bao gồm một vài các câu hỏi về các công cụ thị trường tiền tệ. Các công cụ thị trường tiền tệ là các khoản vay ngắn hạn tương đối an toàn do các tập đoàn, ngân hàng, chính phủ Hoa Kỳ và các đô thị có thể ban hành. Hầu hết đều có kỳ hạn từ một năm trở xuống và thường được phát hành với chiết khấu và đáo hạn theo mệnh giá. Dưới đây là một số ...

ĐơN đặt hàng và Giao dịch về Bài kiểm tra Series 7

ĐơN đặt hàng và Giao dịch về Bài kiểm tra Series 7

Như một đại diện đã đăng ký, bạn cần để biết được sự phức tạp của các đơn đặt hàng và các ngành nghề và, nếu cần, có thể giải thích cho khách hàng hoặc khách hàng tiềm năng. Phần này của bài kiểm tra Series 7 bao gồm các câu hỏi về thị trường chứng khoán, thị trường sơ cấp và thứ cấp, vai trò của các nhà môi giới, loại đơn đặt hàng, hệ thống báo cáo và ...

Thông tin về tăng vốn và tổn thất cần thiết cho kỳ thi loại 7 - núm vú

Thông tin về tăng vốn và tổn thất cần thiết cho kỳ thi loại 7 - núm vú

Vốn lợi nhuận là lợi nhuận được thực hiện khi bán một khoản bảo đảm, và tổn thất vốn là những tổn thất phát sinh khi bán một khoản bảo đảm. Để xác định liệu một nhà đầu tư có tăng vốn hay lỗ vốn, bạn phải bắt đầu với cơ sở chi phí của nhà đầu tư. Cơ sở tính chi phí được sử dụng cho mục đích thuế và bao gồm giá mua cộng với bất kỳ khoản nào

Lựa chọn của người biên tập

Cách Nhập tệp Photoshop và Illustrator vào Adobe Flash CS6 - những hình núm vú

Cách Nhập tệp Photoshop và Illustrator vào Adobe Flash CS6 - những hình núm vú

Adobe Flash CS6 offers việc nhập khẩu liền mạch của Photoshop và các tập tin Illustrator với Illustrator và Photoshop Bảng nhập khẩu. Đồ hoạ được tạo ra trong các ứng dụng này có thể được nhập dễ dàng và chất lượng cao nhất có thể, đó là một tin tuyệt vời nếu Photoshop và Illustrator là những phần quan trọng trong quy trình làm việc sáng tạo của bạn. Sử dụng bảng Nhập khẩu, bạn ...

Làm thế nào để liên kết đến trang web hoặc trang web trong Adobe Flash CS6 - núm vú

Làm thế nào để liên kết đến trang web hoặc trang web trong Adobe Flash CS6 - núm vú

Bạn có thể dễ dàng liên kết tới trang web hoặc trang web trong phim Adobe Flash CS6 bằng cách sử dụng một nút hoặc một đoạn văn bản và một chút trợ giúp về mã từ bảng điều khiển Mã số. Đối với trình xem ảnh của bạn, bạn liên kết văn bản bạn đã đặt trên sân khấu với trang web của Adobe để cho phép người dùng biết ...

Làm thế nào để Tạo nhiều Đối tượng cùng Kích thước trong Adobe Flash CS6 - núm vú

Làm thế nào để Tạo nhiều Đối tượng cùng Kích thước trong Adobe Flash CS6 - núm vú

Cần phải thay đổi kích thước của hai hoặc nhiều đối tượng trên giai đoạn Adobe Flash CS6 để chúng có cùng chiều rộng và chiều rộng, bạn có thể tận dụng các lựa chọn Kích thước Kết hợp trong bảng Căn chỉnh. Tùy chọn Kích thước trận đấu có thể phù hợp với hai đối tượng có cùng chiều rộng hoặc chiều cao, hoặc cả hai. Để phù hợp với hai ...

Lựa chọn của người biên tập

Nhìn vào các trận đấu bóng đá châu Âu - những tay vợt

Nhìn vào các trận đấu bóng đá châu Âu - những tay vợt

Người Mỹ gọi đó là sự ganh đua. Ở phía bên kia của Đại Tây Dương, chúng được gọi là derbies (phát âm darbies). Trong số các cuộc tranh tài kéo dài nhất của châu Âu: Tottenham vs Arsenal: Cho dù các trận đấu được chơi tại Tottenham của White Hart Lane hay Highbury của Arsenal, chắc chắn rằng cả hai sân cỏ ở phía bắc London sẽ được đóng gói nhiều nhất ...

Hỗ trợ các cầu thủ bóng bầu dục của bạn - núm vú

Hỗ trợ các cầu thủ bóng bầu dục của bạn - núm vú

Cầu thủ bóng đá trẻ của bạn đang dựa vào bạn để được hướng dẫn và hỗ trợ suốt mùa. Sau đây là một số cách hữu ích để đáp ứng nhu cầu của họ. Hãy cụ thể với lời khen ngợi của bạn. Dừng các buổi huấn luyện để chỉ ra khi một người chơi làm điều gì đó tốt hơn là khi người đó làm sai. Trong khi cung cấp phản hồi, sử dụng ...

Biết khi nào và như thế nào để dribble trong bóng đá - núm vú

Biết khi nào và như thế nào để dribble trong bóng đá - núm vú

Cơ bản nhất của tất cả các kỹ năng bóng đá đang ráng, khả năng mang quả bóng vượt qua đối thủ trong khi vẫn kiểm soát, dù bằng cách sử dụng một loạt các vòi đơn giản hoặc di chuyển tuyệt vời xung quanh một kẻ thù. Nếu người chơi không thể đánh bóng, thì anh ta không thể chơi được. Mỗi người chơi, kể cả thủ môn, ...