Bagaimana menemukan jumlah maksimum yang di Perl array

Tugas. Di Perl, program ini memiliki sebuah array @arr (tiga huruf pertama dari kata "array"). Perlu menemukan jumlah maksimum yang array ini.

Cara terbaik untuk memecahkan masalah ini adalah dengan menggunakan fungsi max dari perpustakaan List::Util. Perpustakaan List::Util datang dengan Perl, jadi jika anda memiliki Perl, perpustakaan ini tersedia untuk juga menginstal apa-apa.

Berikut ini adalah contoh program yang menemukan dan menampilkan jumlah maksimum dari array yang berisi angka-angka:

▶ Run
#!/usr/bin/perl

use List::Util qw(max);

my @arr = (1, 2, -100, 8, 0);

print max(@arr);

Program ini akan menampilkan nomor 8. (Untuk mengeksekusi kode di browser ).

Ketika anda menghubungkan perpustakaan kita telah menunjukkan bahwa kita akan menggunakan fungsi max: use List::Util qw(max);. Jika anda hanya menghubungkan perpustakaan use List::Util;, program akan mengeluarkan pesan kesalahan Undefined subroutine &main::max called at script.pl line 7..

Dalam array tidak memiliki unsur-unsur

Jika array tidak memiliki unsur-unsur, maka max akan kembali undef. Berikut ini adalah contoh program yang memperhitungkan hal berikut:

▶ Run
#!/usr/bin/perl

use List::Util qw(max);

my @arr;

my $max = max(@arr);

if (defined $max) {
    print $max;
} else {
    print "Empty array";
}

Dalam program ini kita menyimpan hasil dari fungsi max pada variabel jika hasilnya tidak undef, kami menyimpulkan hasil ini, jika undef, kami menyimpulkan teks pada layar.

Di sini kita memeriksa hasil dari fungsi max, tapi itu akan mungkin untuk mengetahui jumlah elemen dalam array dan jika jumlah item adalah 0, kemudian melakukan apa yang perlu anda lakukan dalam kasus array kosong.

Bekerja dalam kasus array memiliki string

Ketika bekerja dengan fungsi max dari perpustakaan List::Util ada satu kehalusan. Sebenarnya max kembali jumlah maksimum dari array, dan unsur dan lihat jumlah maksimum.

Berikut ini adalah contoh. Hasil max(-100, 'ABC', -4) akan 'ABC'. Hal ini terjadi karena fakta bahwa nilai numerik dari string 'ABC' adalah nol, nol adalah nilai terbesar dalam array ini, sehingga akan menghasilkan elemen yang tertinggi dengan nilai numerik. Dalam contoh ini, string 'ABC'.

Contoh lain. Hasil max(1, 7, '10W') akan '10W'.

Dokumentasi resmi

Berikut adalah cuplikan dari output perldoc List::Util  tentang fungsi max:

  max
        my $num = max @list;

    Returns the entry in the list with the highest numerical value. If the
    list is empty then "undef" is returned.

        $foo = max 1..10                # 10
        $foo = max 3,9,12               # 12
        $foo = max @bar, @baz           # whatever

Artikel lainnya