Bagaimana menemukan jumlah minimum di Perl array

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

Cara terbaik untuk memecahkan masalah ini adalah dengan menggunakan fungsi min 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 minimum dari array yang berisi angka-angka:

▶ Run
#!/usr/bin/perl

use List::Util qw(min);

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

print min(@arr);

Program ini akan menampilkan jumlah -100. (Untuk mengeksekusi kode di browser ).

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

Dalam array tidak memiliki unsur-unsur

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

▶ Run
#!/usr/bin/perl

use List::Util qw(min);

my @arr;

my $min = min(@arr);

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

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

Di sini kita memeriksa hasil dari fungsi min, 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 min dari perpustakaan List::Util ada satu kehalusan. Sebenarnya min tidak kembali jumlah minimum dari array, dan elemen yang melihat jumlah minimal.

Berikut ini adalah contoh. Hasil min(12, 'ABC', 44) akan 'ABC'. Hal ini terjadi karena fakta bahwa nilai numerik dari string 'ABC' adalah nol, nol adalah nilai terkecil dalam array ini. Hasil min adalah elemen yang nilai numerik minimal. Dalam contoh ini, string 'ABC'.

Contoh lain. Hasil min(10, 7, '4H') akan '4H'.

Dokumentasi resmi

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

  min
        my $num = min @list;

    Similar to "max" but returns the entry in the list with the lowest
    numerical value. If the list is empty then "undef" is returned.

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

Artikel lainnya