Saya tidak berpikir ini adalah pesan kesalahan yang sangat sering ditemui di Perl. Setidaknya, saya tidak ingat pernah melihatnya sebelumnya, tapi belakangan hal ini cukup mengganggu saya selama di kelas pelatihan Perl.
Peringatan Kategori Tak Dikenal '1'
Pesan kesalahannya tampak sebagai berikut:
Unknown warnings category '1' at hello_world.pl line 4
BEGIN failed--compilation aborted at hello_world.pl line 4.
Hello World
Hal ini benar-benar mengganggu, padahal kodenya begitu sederhana:
use strict;
use warnings
print "Hello World";
Saya melihat kode tersebut cukup lama dan tidak menemukan masalah di dalamnya. Seperti yang dapat Anda lihat juga, kodenya telah mencetak string "Hello World".
Ini mengherankan dan membuat saya perlu waktu untuk memperhatikannya dengan seksama, malah mungkin telah Anda ketahui:
Masalahnya adalah ketiadaan tanda titik koma setelah statement
use warnings
.
Perl mengeksekusi statement print,
hal tersebut mencetak string dan fungsi print
bernilai 1
mengindikasikan bahwa kode berhasil dijalankan.
Perl mengira saya menuliskan use warnings 1
.
Ada banyak sekali kategori peringatan, tapi tak satupun yang bernama "1".
Kategori Peringatan Tak Dikenal 'Foo'
Ini merupakan kasus yang sama.
Pesan kesalahannya berbunyi:
Unknown warnings category 'Foo' at hello.pl line 4
BEGIN failed--compilation aborted at hello.pl line 4.
dan contoh kode berikut menunjukkan bagaimana interpolasi string bekerja. Ini adalah contoh kedua yang saya ajarkan, tepat setelah "Hello World".
use strict;
use warnings
my $name = "Foo";
print "Hi $name\n";
Kurang Titik Koma
Tentu saja semua ini hanya kasus umum gara-gara titik komanya ketinggalan. Perl dapat menemukannya hanya pada pernyataan (statement) berikutnya.
Maka sangat disarankan untuk memeriksa baris sebelum lokasi yang mengindikasikan pesan kesalahan. Mungkin di sana kurang tanda titik koma.