Làm thế nào để bày Perl mảng

Một mảng là một trong những cơ cấu trúc dữ liệu ở các Perl ngôn ngữ. Trong mảng yếu tố có thể loại khác nhau.

Đôi khi bạn cần phải mang một mảng của Perl trên màn hình. Có rất nhiều cách để làm điều đó.

Sử dụng join()

Thường là cách tốt nhất để lấy được giá trị từ Perl các mảng trên màn hình là để sử dụng các chức năng join(). Bằng cách sử dụng các chức năng join() để tạo ra một chuỗi từ mảng giá trị, và sau đó để mang lại chuỗi này vào màn hình. Đây là một ví dụ:

▶ Run
#!/usr/bin/perl

my @arr = (1, 20, 'asdf', 100);

print join(', ', @arr);

Chúng tôi đã xác định được một mảng @arr trong đó được đặt một vài con số, và một chuỗi, và sau đó bằng cách sử dụng join(', ', @arr) , chúng tôi đã tạo ra một chuỗi và sử dụng print đưa nó vào màn hình. Các kết quả của mã này: 1, 20, asdf, 100. Phương pháp này là tốt, vì những gì nó rõ ràng.

Sử dụng Data::Dumper

Đôi khi nó là cần thiết để nhìn vào cấu trúc của dữ liệu lưu trữ trong một biến. Phù hợp với thư viện Data::Dumper. Thư viện này là Perl, riêng biệt, nó không đặt. Bằng cách sử dụng Data::Dumper bạn có thể thấy những gì có trong biến. Đây là một ví dụ mã hiển thị thông tin về các mảng:

▶ Run
#!/usr/bin/perl

use Data::Dumper;

my @arr = (1, 20, 'asdf', 100);

print Dumper \@arr;

Đầu của chương trình này:

$VAR1 = [
          1,
          20,
          'asdf',
          100
        ];

Sử dụng print

Nhưng ngoài sử dụng join() hoặc Data::Dumper mảng trên màn hình rút sử dụng print:

▶ Run
#!/usr/bin/perl

my @arr = (1, 20, 'asdf', 100);

print @arr;

Các kết quả của chương trình:

120asdf100

Như ông có thể thấy, print @arr in tất cả các mảng yếu tố với nhau. Các yếu tố của các mảng trong đầu ra không phải là tách ra. Đôi khi điều này là những gì anh cần, và đôi khi không.

Nhưng thay vì phương pháp này print @arr thường là tốt hơn để viết rõ ràng print join('', @arr);. Ghi âm với join() dễ dàng hơn để đọc người đàn ông.

Biến $,

Đó là một đặc biệt biến $,, mà điều khiển printkết hợp các yếu tố của các mảng trong đầu ra. Ví dụ, bạn có thể Bổ sung ví dụ trước và đặt trong này biến các biểu tượng ,.

▶ Run
#!/usr/bin/perl

$, = ',';

my @arr = (1, 20, 'asdf', 100);

print @arr;

Chương trình hiển thị một văn bản, trong đó các yếu tố của các mảng tách ra bằng dấu phẩy: 1,20,asdf,100.

Biến $, có thể chứa không chỉ một trong những nhân vật nhưng một số. Nếu biến này để gán một chuỗi $, = ', ';, sau đó ra sẽ có nhiều hơn một chút mô tả: 1, 20, asdf, 100.

Nếu biến $, để gán biểu tượng để \n, sau đó, mỗi yếu tố của các mảng sẽ được hiển thị trên một đường dây riêng biệt:

▶ Run
#!/usr/bin/perl

$, = "\n";

my @arr = (1, 20, 'asdf', 100);

print @arr;

Nhưng thường nhất, nó không phải là tốt hơn để sử dụng một biến $,, và sử dụng các chức năng join() để một cách rõ ràng thu thập giá trị từ một mảng đến một chuỗi. Các vấn đề với biến $, đó là một giá trị có thể được phân công ở một nơi trong chương trình và print đó là ảnh hưởng bởi biến này ở một nơi hoàn toàn khác nhau của chương trình. Khi sử dụng join() thiết lập để chia là rõ ràng ngay lập tức. Một vấn đề khác biến thực tế là, nó ảnh hưởng đến tất cả print mà nằm sau khi sự phân công.

ARRAY(0x561c66b32870)

Đôi khi, bạn vào một Perl mảng đến màn hình mà bạn có thể thấy những dòng ARRAY(0x561c66b32870). Điều này có nghĩa là màn hình hiển thị sẽ thay vì của một loạt tài liệu tham khảo các mảng. Đây là một ví dụ của mã mà thị một chuỗi như thế này:

▶ Run
#!/usr/bin/perl

my @arr = (1, 20, 'asdf', 100);
my $arr_ref = \@arr;

print $arr_ref;

Để hiển thị các mảng trên màn hình, hoặc sử dụng Data::Dumper, hoặc để tới đích của liên kết và thay vào đó print $arr_ref; viết print @{$arr_ref};. Tốt hơn chưa, viết print join('', @{$arr_ref});

Chủ đề liên quan

Các bài viết khác