Ini adalah perintah perldiag yang dapat dijalankan di penyedia hosting gratis OnWorks menggunakan salah satu dari beberapa workstation online gratis kami seperti Ubuntu Online, Fedora Online, emulator online Windows atau emulator online MAC OS
PROGRAM:
NAMA
perldiag - berbagai diagnostik Perl
DESKRIPSI
Pesan-pesan ini diklasifikasikan sebagai berikut (terdaftar dalam urutan keputusasaan yang meningkat):
(W) Peringatan (opsional).
(D) Penghentian (diaktifkan secara default).
(S) Peringatan berat (diaktifkan secara default).
(F) Kesalahan fatal (dapat dijebak).
(P) Kesalahan internal yang seharusnya tidak pernah Anda lihat (dapat dijebak).
(X) Kesalahan yang sangat fatal (nontrapable).
(A) Pesan kesalahan alien (tidak dibuat oleh Perl).
Mayoritas pesan dari tiga klasifikasi pertama di atas (W, D & S) dapat
dikendalikan menggunakan pragma "peringatan".
Jika sebuah pesan dapat dikendalikan oleh pragma "peringatan", kategori peringatannya disertakan
dengan surat klasifikasi pada uraian di bawah ini. Misalnya "(W tertutup)" berarti a
peringatan dalam kategori "tertutup".
Peringatan opsional diaktifkan dengan menggunakan pragma "peringatan" atau -w dan -W switch.
Peringatan dapat ditangkap dengan menyetel $SIG{__WARN__} ke referensi ke rutinitas yang akan
dipanggil pada setiap peringatan alih-alih mencetaknya. Lihat perlvar.
Peringatan berat selalu diaktifkan, kecuali jika dinonaktifkan secara eksplisit dengan
pragma "peringatan" atau -X saklar.
Kesalahan yang dapat dijebak dapat dijebak menggunakan operator eval. Lihat "eval" di perlfunc. Di
hampir semua kasus, peringatan dapat dinonaktifkan secara selektif atau dipromosikan menjadi kesalahan fatal menggunakan
pragma "peringatan". Lihat peringatan.
Pesan dalam urutan abjad, tanpa memperhatikan huruf besar atau kecil. Beberapa
pesan-pesan ini bersifat umum. Bintik-bintik yang bervariasi dilambangkan dengan %s atau gaya printf lainnya
melarikan diri. Pelarian ini diabaikan oleh urutan abjad, seperti semua karakter lainnya
daripada huruf. Untuk mencari pesan Anda, abaikan saja apa pun yang bukan huruf.
menerima() pada soket tertutup %s
(W tertutup) Anda mencoba melakukan penerimaan pada soket tertutup. Apakah Anda lupa untuk memeriksa
kembalikan nilai Anda stopkontak () panggilan? Lihat "terima" di perlfunc.
Aliasing melalui referensi adalah eksperimental
(S eksperimental::refaliasing) Peringatan ini dikeluarkan jika Anda menggunakan referensi
konstruktor di sisi kiri tugas untuk alias satu variabel ke variabel lainnya.
Cukup tekan peringatan jika Anda ingin menggunakan fitur tersebut, tetapi ketahuilah bahwa dalam melakukannya
Anda mengambil risiko menggunakan fitur eksperimental yang dapat berubah atau menjadi
dihapus dalam versi Perl mendatang:
tidak ada peringatan "eksperimental::refaliasing";
gunakan fitur "refaliasing";
\$x = \$y;
Alokasi terlalu besar: %x
(X) Anda tidak dapat mengalokasikan lebih dari 64K pada mesin MS-DOS.
'%c' hanya diperbolehkan setelah mengetik %s di %s
(F) Pengubah '!', '<' dan '>' diizinkan masuk mengemas() or membongkar() hanya setelah
jenis tertentu. Lihat "paket" di perlfunc.
Panggilan ambigu diselesaikan sebagai CORE::%s(), memenuhi syarat seperti itu atau menggunakan &
(W ambigu) Subrutin yang telah Anda deklarasikan memiliki nama yang sama dengan kata kunci Perl, dan
Anda telah menggunakan nama tersebut tanpa kualifikasi untuk memanggil satu atau yang lain. Perl
memutuskan untuk memanggil builtin karena subrutin tidak diimpor.
Untuk memaksa interpretasi sebagai panggilan subrutin, letakkan ampersand sebelum
nama subrutin, atau memenuhi syarat nama dengan paketnya. Atau, Anda dapat mengimpor
subrutin (atau berpura-pura bahwa itu diimpor dengan pragma "gunakan subs").
Untuk menafsirkannya secara diam-diam sebagai operator Perl, gunakan awalan "CORE::" pada operator
(misalnya "CORE::log($x)") atau mendeklarasikan subrutin sebagai metode objek (lihat
"Atribut Subrutin" di perlsub atau atribut).
Rentang ambigu dalam operator transliterasi
(F) Anda menulis sesuatu seperti "tr/az-0//" yang tidak berarti apa-apa. Ke
sertakan karakter "-" dalam transliterasi, letakkan di awal atau akhir. (Dalam
masa lalu, "tr/az-0//" identik dengan "tr/ay//", yang mungkin bukan apa yang Anda
akan diharapkan.)
Penggunaan %s yang ambigu diselesaikan sebagai %s
(S ambigu) Anda mengatakan sesuatu yang mungkin tidak ditafsirkan seperti yang Anda pikirkan.
Biasanya cukup mudah untuk membedakannya dengan memberikan kutipan yang hilang, operator,
pasangan kurung atau deklarasi.
Penggunaan ambigu -%s diselesaikan sebagai -&%s()
(S ambigu) Anda menulis sesuatu seperti "-foo", yang mungkin berupa string "-foo", atau a
panggilan ke fungsi "foo", dinegasikan. Jika yang Anda maksud adalah string, tulis saja "-foo". Jika
maksud Anda panggilan fungsi, tulis "-foo()".
Penggunaan ambigu %c diselesaikan sebagai operator %c
(S ambigu) "%", "&", dan "*" keduanya adalah operator infiks (modulus, bitwise dan, dan
perkalian) dan karakter khusus awal (menunjukkan hash, subrutin dan
typeglobs), dan Anda mengatakan sesuatu seperti "*foo * foo" yang dapat diartikan sebagai
salah satu dari mereka. Kami berasumsi bahwa yang Anda maksud adalah operator infix, tapi tolong coba membuatnya
lebih jelas -- dalam contoh yang diberikan, Anda dapat menulis "*foo * foo()" jika Anda benar-benar bermaksud
untuk mengalikan gumpalan dengan hasil pemanggilan fungsi.
Penggunaan ambigu %c{%s} diselesaikan menjadi %c%s
(W ambigu) Anda menulis sesuatu seperti "@{foo}", yang mungkin meminta
variabel @foo, atau mungkin memanggil fungsi bernama foo, dan mendereferensikannya sebagai
referensi larik. Jika Anda menginginkan variabel, Anda bisa menulis @foo. Jika Anda ingin
untuk memanggil fungsi, tulis "@{foo()}" ... atau Anda bisa saja tidak memiliki variabel dan a
berfungsi dengan nama yang sama, dan menyelamatkan diri Anda dari banyak masalah.
Penggunaan ambigu %c{%s[...]} diselesaikan menjadi %c%s[...]
Penggunaan ambigu %c{%s{...}} diselesaikan menjadi %c%s{...}
(W ambigu) Anda menulis sesuatu seperti "${foo[2]}" (di mana foo mewakili nama a
Kata kunci Perl), yang mungkin mencari elemen nomor 2 dari array bernama @foo, di
dalam hal ini tolong tulis $foo[2], atau Anda mungkin bermaksud melewatkan arrayref anonim
ke fungsi bernama foo, lalu lakukan skalar deref pada nilai yang dikembalikannya. Jika kamu
maksudnya, tulis "${foo([2])}".
Dalam ekspresi reguler, sintaks "${foo[2]}" terkadang diperlukan untuk memperjelas
antara subscript array dan kelas karakter. "/$length[2345]/", misalnya, akan
ditafsirkan sebagai $length diikuti oleh kelas karakter "[2345]". Jika sebuah array
subscript adalah apa yang Anda inginkan, Anda dapat menghindari peringatan dengan mengubah "/${length[2345]}/"
ke "/${\$length[2345]}/" yang tidak sedap dipandang, dengan mengganti nama array Anda menjadi sesuatu yang
tidak sesuai dengan kata kunci bawaan, atau hanya dengan mematikan peringatan dengan "tidak
peringatan 'ambigu';".
'|' dan '<' mungkin tidak keduanya ditentukan pada baris perintah
(F) Sebuah kesalahan khusus untuk VMS. Perl melakukan pengalihan baris perintahnya sendiri, dan menemukan
bahwa STDIN adalah pipa, dan Anda juga mencoba mengarahkan ulang STDIN menggunakan '<'. Hanya satu
Aliran STDIN ke pelanggan, tolong.
'|' dan '>' mungkin tidak keduanya ditentukan pada baris perintah
(F) Sebuah kesalahan khusus untuk VMS. Perl melakukan pengalihan baris perintahnya sendiri, dan berpikir
anda mencoba mengarahkan stdout ke file dan ke pipa ke perintah lain. Anda
harus memilih satu atau yang lain, meskipun tidak ada yang menghentikan Anda dari pipa ke a
program atau skrip Perl yang 'membagi' output menjadi dua aliran, seperti
open(OUT,">$ARGV[0]") or die "Tidak dapat menulis ke $ARGV[0]: $!";
ketika ( ) {
cetak;
cetak KELUAR;
}
tutup;
Menerapkan %s ke %s akan bertindak pada skalar(%s)
(W misc) Kecocokan pola ("//"), substitusi ("s///"), dan transliterasi
("tr///") operator bekerja pada nilai skalar. Jika Anda menerapkan salah satunya ke array atau a
hash, itu akan mengubah array atau hash menjadi nilai skalar (panjang array, atau
info populasi hash) dan kemudian kerjakan nilai skalar itu. Ini mungkin
bukan apa yang ingin Anda lakukan. Lihat "grep" di perlfunc dan "map" di perlfunc untuk
alternatif.
Arg terlalu pendek untuk msgsnd
(F) pesan singkat() membutuhkan string setidaknya sepanjang sizeof(long).
Argumen "%s" bukan numerik%s
(W numerik) String yang ditunjukkan diumpankan sebagai argumen ke operator yang mengharapkan a
nilai numerik sebagai gantinya. Jika Anda beruntung, pesan akan mengidentifikasi operator mana
sangat disayangkan.
Perhatikan bahwa untuk "Inf" dan "NaN" (tak terhingga dan bukan-angka) definisi dari
"numerik" agak tidak biasa: string itu sendiri (seperti "Inf") dianggap
numerik, dan apa pun yang mengikutinya dianggap non-numerik.
Daftar argumen tidak ditutup untuk lapisan PerlIO "%s"
(Lapisan W) Saat mendorong lapisan dengan argumen ke sistem I/O Perl, Anda lupa
) yang menutup daftar argumen. (Lapisan menangani transformasi data antara
representasi eksternal dan internal.) Perl berhenti mem-parsing daftar lapisan di sini
titik dan tidak berusaha untuk mendorong lapisan ini. Jika program Anda tidak secara eksplisit
meminta operasi yang gagal, itu mungkin hasil dari nilai lingkungan
variabel PERLIO.
Argumen "%s" diperlakukan sebagai kenaikan 0 (++)
(W numerik) String yang ditunjukkan dimasukkan sebagai argumen ke operator "++" yang
mengharapkan angka atau string yang cocok dengan "/^[a-zA-Z]*[0-9]*\z/". Lihat "Oto-
kenaikan dan Penurunan otomatis" di perlop untuk detailnya.
pernyataan gagal: %s
(X) Paket malloc yang disertakan dengan Perl mengalami kegagalan internal.
Pernyataan %s gagal: file "%s", baris %d
(X) Sebuah pernyataan umum gagal. Berkas yang bersangkutan harus diperiksa.
Nilai yang ditetapkan bukan referensi
(F) Anda mencoba menetapkan sesuatu yang bukan referensi ke referensi nilai
(misalnya, "\$x = $y"). Jika Anda bermaksud membuat $x sebagai alias untuk $y, gunakan "\$x = \$y".
Nilai yang ditetapkan bukan referensi %s
(F) Anda mencoba untuk menetapkan referensi ke konstruktor referensi, tetapi dua referensi
tidak dari jenis yang sama. Anda tidak dapat membuat alias skalar ke array, atau array ke a
hash; kedua jenis harus cocok.
\$x = \@y; # kesalahan
\@x = \%y; # kesalahan
$y = [];
\$x = $y; # kesalahan; maksudmu \$y?
Menetapkan bukan nol ke $[ tidak lagi dimungkinkan
(F) Ketika fitur "array_base" dinonaktifkan (misalnya, di bawah "gunakan v5.16;")
variabel $[, yang tidak digunakan lagi, sekarang menjadi nilai nol tetap.
Penugasan untuk daftar dan skalar
(F) Jika Anda menetapkan ke operator kondisional, argumen ke-2 dan ke-3 harus:
keduanya menjadi skalar atau keduanya menjadi daftar. Kalau tidak, Perl tidak akan tahu konteks mana yang harus disediakan
samping kanan.
<> pada pernyataan-persyaratan harus berupa tanda kutip
(F) Anda menulis "membutuhkan " ketika Anda seharusnya menulis "memerlukan 'file'".
Mencoba mengakses kunci '%s' yang tidak diizinkan dalam hash terbatas
(F) Kode yang gagal telah mencoba untuk mendapatkan atau mengatur kunci yang tidak ada di set saat ini
dari kunci yang diizinkan dari hash terbatas.
Mencoba memberkati ke dalam paket gratis
(F) Anda menulis "bless $foo" dengan satu argumen setelah entah bagaimana menyebabkan paket saat ini
untuk dibebaskan. Perl tidak tahu apa yang harus dilakukan, jadi dia putus asa.
Mencoba memberkati menjadi referensi
(F) Argumen CLASSNAME untuk memberkati() operator diharapkan menjadi nama
paket untuk memberkati objek yang dihasilkan menjadi. Anda telah memberikan referensi ke
sesuatu: mungkin Anda menulis
memberkati $diri, $proto;
ketika kamu berniat
memberkati $self, ref($proto) || $proto;
Jika Anda benar-benar ingin memberkati ke dalam versi string dari referensi yang disediakan,
anda perlu merangkainya sendiri, misalnya dengan:
memberkati $diri, "$proto";
Cobalah untuk menghapus array yang dihapus
(S debugging) Sebuah array ditugaskan ketika sedang dibebaskan. Nilai yang dibebaskan tidak
seharusnya terlihat oleh kode Perl. Ini juga dapat terjadi jika kode XS memanggil "av_clear"
dari panggilan balik ajaib khusus pada larik.
Mencoba menghapus kunci yang tidak diizinkan '%s' dari hash yang dibatasi
(F) Kode yang gagal berusaha untuk menghapus dari kunci hash terbatas yang tidak ada di
set kuncinya.
Mencoba menghapus kunci hanya-baca '%s' dari hash terbatas
(F) Kode yang gagal mencoba menghapus kunci yang nilainya telah dinyatakan hanya-baca
dari hash terbatas.
Mencoba membebaskan SV non-arena: 0x%x
(S internal) Semua objek SV seharusnya dialokasikan dari arena yang akan
sampah dikumpulkan di pintu keluar. Sebuah SV ditemukan berada di luar arena tersebut.
Mencoba untuk membebaskan string bersama yang tidak ada '%s'%s
(S internal) Perl mempertahankan tabel string internal yang dihitung dengan referensi untuk dioptimalkan
penyimpanan dan akses kunci hash dan string lainnya. Ini menunjukkan seseorang mencoba
untuk mengurangi jumlah referensi string yang tidak lagi dapat ditemukan di tabel.
Mencoba membebaskan suhu sebelum waktunya: SV 0x%x
(S debugging) Nilai yang mati seharusnya dibebaskan oleh gratis_tmps() rutin.
Ini menunjukkan bahwa sesuatu yang lain membebaskan SV sebelum gratis_tmps() rutin
mendapat kesempatan, yang berarti bahwa gratis_tmps() rutinitas akan membebaskan dan
skalar yang tidak direferensikan ketika mencoba untuk membebaskannya.
Cobalah untuk membebaskan pointer glob yang tidak direferensikan
(S internal) Jumlah referensi kacau pada alias simbol.
Mencoba untuk membebaskan skalar yang tidak direferensikan: SV 0x%x
(S internal) Perl pergi untuk mengurangi jumlah referensi skalar untuk melihat apakah itu akan
pergi ke 0, dan menemukan bahwa itu sudah pergi ke 0 sebelumnya, dan seharusnya
dibebaskan, dan pada kenyataannya, mungkin dibebaskan. Ini bisa menunjukkan bahwa SvREFCNT_des() adalah
menelepon terlalu sering, atau itu SvREFCNT_inc() dipanggil terlalu sedikit, atau bahwa SV
mati ketika seharusnya tidak, atau memori itu telah rusak.
Cobalah untuk mengemas pointer ke nilai sementara
(Paket W) Anda mencoba memberikan nilai sementara (seperti hasil dari suatu fungsi, atau a
ekspresi yang dihitung) ke "p" mengemas() templat. Ini berarti hasilnya mengandung
penunjuk ke lokasi yang bisa menjadi tidak valid kapan saja, bahkan sebelum akhir
pernyataan saat ini. Gunakan literal atau nilai global sebagai argumen untuk "p" mengemas()
template untuk menghindari peringatan ini.
Upaya memuat ulang %s dibatalkan.
(F) Anda mencoba memuat file dengan "gunakan" atau "memerlukan" yang gagal dikompilasi sekali
sudah. Perl tidak akan mencoba mengkompilasi file ini lagi kecuali Anda menghapus entrinya
dari %INC. Lihat "memerlukan" di perlfunc dan "%INC" di perlvar.
Cobalah untuk mengatur panjang array yang dibebaskan
(W misc) Anda mencoba mengatur panjang array yang telah dibebaskan. Anda dapat melakukan
ini dengan menyimpan referensi ke skalar yang mewakili indeks terakhir dari array dan
kemudian menetapkan melalui referensi itu. Sebagai contoh
$r = lakukan {saya @a; \$#a};
$$r = 503
Mencoba menggunakan referensi sebagai nilai dalam substr
(W substr) Anda memberikan referensi sebagai argumen pertama untuk substr() digunakan sebagai
lvalue, yang cukup aneh. Mungkin Anda lupa melakukan dereference terlebih dahulu. Melihat
"substr" di perlfunc.
Atribut "terkunci" tidak digunakan lagi
(D usang) Anda telah menggunakan pragma atribut untuk mengubah atribut "terkunci" pada
referensi kode. Atribut :locked sudah usang, tidak berpengaruh sejak 5005
utas telah dihapus, dan akan dihapus dalam rilis Perl 5 mendatang.
Prototipe atribut(%s) membuang atribut prototipe sebelumnya di sub . yang sama
(W misc) Sub dideklarasikan sebagai sub foo : prototype(A) : prototype(B) {}, misalnya.
Karena setiap sub hanya dapat memiliki satu prototipe, deklarasi sebelumnya dibuang
sedangkan yang terakhir diterapkan.
Atribut "unik" tidak digunakan lagi
(D usang) Anda telah menggunakan pragma atribut untuk mengubah atribut "unik" pada
referensi array, hash atau skalar. Atribut :unique tidak berpengaruh sejak
Perl 5.8.8, dan akan dihapus dalam rilis Perl 5 mendatang.
av_reify dipanggil pada array terikat
(S debugging) Ini menunjukkan bahwa ada yang tidak beres dan Perl mendapat sangat bingung
tentang @_ atau @DB::args sedang diikat.
Panjang argumen buruk untuk %s, adalah %u, seharusnya %d
(F) Anda memberikan buffer dengan ukuran yang salah ke salah satu dari pesan(), semctl() or shmctl().
Dalam bahasa C, ukuran yang benar masing-masing adalah sizeof(struct msqid_ds *),
sizeof(struct semid_ds *), dan sizeof(struct shmid_ds *).
Pola substitusi yang dievaluasi buruk
(F) Anda telah menggunakan tombol "/e" untuk mengevaluasi penggantian substitusi, tetapi
perl menemukan kesalahan sintaks dalam kode untuk dievaluasi, kemungkinan besar hak yang tidak terduga
kurung '}'.
Penanganan file buruk: %s
(F) Sebuah simbol dilewatkan ke sesuatu yang menginginkan sebuah filehandle, tetapi simbol tersebut tidak memiliki
filehandle yang terkait dengannya. Mungkin Anda tidak melakukan Buka(), atau melakukannya di tempat lain
paket.
Buruk Gratis() diabaikan
(S malloc) Rutinitas internal yang disebut Gratis() pada sesuatu yang belum pernah terjadi
malloc ()ed di tempat pertama. Wajib, tetapi dapat dinonaktifkan dengan mengatur lingkungan
variabel "PERL_BADFREE" menjadi 0.
Pesan ini dapat dilihat cukup sering dengan DB_File pada sistem dengan dinamis "keras"
menautkan, seperti "AIX" dan "OS/2". Ini adalah bug dari "Berkeley DB" yang tidak diperhatikan
jika "DB" menggunakan memaafkan sistem malloc ().
hash yang buruk
(P) Salah satu rutinitas hash internal dilewatkan pointer HV nol.
Ditempatkan dengan buruk ()'s
(A) Anda tidak sengaja menjalankan skrip Anda csh bukannya Perl. Periksalah #!
baris, atau masukkan sendiri skrip Anda ke Perl secara manual.
Nama buruk setelah %s
(F) Anda mulai memberi nama simbol dengan menggunakan awalan paket, dan kemudian tidak menyelesaikannya
simbol. Secara khusus, Anda tidak dapat melakukan interpolasi di luar tanda kutip, jadi
$var = 'myvar';
$sym = paket saya::$var;
tidak sama dengan
$var = 'myvar';
$sym = "paket saya::$var";
Plugin buruk memengaruhi kata kunci '%s'
(F) Ekstensi yang menggunakan mekanisme plugin kata kunci melanggar API plugin.
Buruk alokasi ulang() diabaikan
(S malloc) Rutinitas internal yang disebut alokasi ulang() pada sesuatu yang belum pernah terjadi
malloc ()ed di tempat pertama. Wajib, tetapi dapat dinonaktifkan dengan mengatur
variabel lingkungan "PERL_BADFREE" menjadi 1.
Simbol buruk untuk array
(P) Permintaan internal meminta untuk menambahkan entri array ke sesuatu yang bukan simbol
entri tabel.
Simbol buruk untuk dirhandle
(P) Permintaan internal meminta untuk menambahkan entri dirhandle ke sesuatu yang bukan
entri tabel simbol.
Simbol buruk untuk filehandle
(P) Permintaan internal meminta untuk menambahkan entri filehandle ke sesuatu yang bukan
entri tabel simbol.
Simbol buruk untuk hash
(P) Permintaan internal meminta untuk menambahkan entri hash ke sesuatu yang bukan simbol
entri tabel.
Simbol buruk untuk skalar
(P) Permintaan internal meminta untuk menambahkan entri skalar ke sesuatu yang bukan simbol
entri tabel.
Bareword ditemukan dalam kondisional
(W bareword) Kompilator menemukan bareword yang diharapkan bersyarat, yang
sering menunjukkan bahwa sebuah || atau && diuraikan sebagai bagian dari argumen terakhir dari
konstruksi sebelumnya, misalnya:
buka FOO || mati;
Ini juga dapat menunjukkan konstanta salah eja yang telah ditafsirkan sebagai kata kosong:
gunakan TYPO konstan => 1;
if (TYOP) { cetak "foo" }
Pragma "ketat" berguna untuk menghindari kesalahan seperti itu.
Bareword "%s" tidak diizinkan saat "langganan ketat" digunakan
(F) Dengan "strict subs" yang digunakan, bareword hanya diperbolehkan sebagai pengidentifikasi subrutin,
dalam kurung kurawal atau di sebelah kiri simbol "=>". Mungkin Anda perlu menyatakan sebelumnya
subrutin?
Bareword "%s" mengacu pada paket yang tidak ada
(W bareword) Anda menggunakan bareword yang memenuhi syarat dalam bentuk "Foo::", tetapi kompilator melihat
tidak ada kegunaan lain dari namespace itu sebelum titik itu. Mungkin Anda perlu menyatakan sebelumnya
paket?
BEGIN gagal--kompilasi dibatalkan
(F) Pengecualian yang tidak dijebak muncul saat menjalankan subrutin BEGIN. Kompilasi
berhenti segera dan penerjemah keluar.
MULAI tidak aman setelah kesalahan--kompilasi dibatalkan
(F) Perl menemukan subrutin "BEGIN {}" (atau arahan "gunakan", yang menyiratkan "BEGIN {}"
{}") setelah satu atau beberapa kesalahan kompilasi telah terjadi. Sejak yang dimaksudkan
lingkungan untuk "BEGIN {}" tidak dapat dijamin (karena kesalahan), dan karena
kode berikutnya kemungkinan besar tergantung pada operasinya yang benar, Perl menyerah begitu saja.
\%d lebih baik ditulis sebagai $%d
(Sintaks W) Di luar pola, referensi balik hidup sebagai variabel. penggunaan dari
garis miring terbalik dikecualikan di sisi kanan substitusi, tapi
secara gaya lebih baik menggunakan bentuk variabel karena pemrogram Perl lainnya akan
mengharapkannya, dan itu berfungsi lebih baik jika ada lebih dari 9 referensi balik.
Angka biner > 0b11111111111111111111111111111111 non-portabel
(W portabel) Angka biner yang Anda tentukan lebih besar dari 2**32-1 (4294967295) dan
oleh karena itu non-portabel antar sistem. Lihat perlport untuk lebih lanjut tentang portabilitas
keprihatinan.
bind () pada soket tertutup %s
(W tertutup) Anda mencoba melakukan pengikatan pada soket tertutup. Apakah Anda lupa untuk memeriksa
kembalikan nilai Anda stopkontak () panggilan? Lihat "mengikat" di perlfunc.
mode bin() pada filehandle tertutup %s
(W belum dibuka) Anda mencoba mode bin() pada filehandle yang tidak pernah dibuka. Periksa Anda
aliran kontrol dan jumlah argumen.
Ukuran vektor bit > 32 non-portabel
(W portabel) Menggunakan ukuran vektor bit yang lebih besar dari 32 tidak portabel.
Salinan aneh %s
(P) Perl mendeteksi upaya untuk menyalin nilai internal yang tidak dapat disalin.
SvTYPE Aneh [%d]
(P) Saat memulai utas baru atau mengembalikan nilai dari utas, Perl menemukan:
tipe data tidak valid.
Kedua atau tidak kedua ujung rentang harus Unicode di regex; ditandai dengan <-- DI SINI dalam m/%s/
(W regexp) (hanya di bawah "use re 'strict'" atau di dalam "(?[...])")
Dalam kelas karakter tanda kurung dalam pola ekspresi reguler, Anda memiliki rentang yang
memiliki tepat satu ujung yang ditetapkan menggunakan "\N{}", dan ujung lainnya ditetapkan menggunakan
mekanisme non-portabel. Perl memperlakukan rentang sebagai rentang Unicode, yaitu, semua
karakter di dalamnya dianggap sebagai karakter Unicode, dan yang mungkin
titik kode yang berbeda pada beberapa platform yang dijalankan Perl. Misalnya, "[\N{U+06}-\x08]"
diperlakukan seolah-olah Anda malah mengatakan "[\N{U+06}-\N{U+08}]", itu cocok dengan
karakter yang poin kodenya di Unicode adalah 6, 7, dan 8. Tapi "\x08" itu mungkin
menunjukkan bahwa Anda bermaksud sesuatu yang berbeda, sehingga peringatan akan dinaikkan.
Buffer overflow di prime_env_iter: %s
(W internal) Peringatan khusus untuk VMS. Sementara Perl bersiap untuk mengulangi
%ENV, itu menemukan nama logis atau definisi simbol yang terlalu panjang, jadi itu
dipotong ke string yang ditampilkan.
Panggilan balik disebut keluar
(F) Sebuah subrutin dipanggil dari paket eksternal melalui panggilan_sv() keluar dengan memanggil
keluar.
%s() dipanggil terlalu dini untuk memeriksa prototipe
(W prototipe) Anda telah memanggil fungsi yang memiliki prototipe sebelum parser melihat a
definisi atau deklarasi untuk itu, dan Perl tidak dapat memeriksa apakah panggilan tersebut sesuai dengan
Prototipe. Anda perlu menambahkan deklarasi prototipe awal untuk
subrutin yang bersangkutan, atau pindahkan definisi subrutin sebelum panggilan untuk mendapatkan
pemeriksaan prototipe yang tepat. Atau, jika Anda yakin bahwa Anda menelepon
berfungsi dengan benar, Anda dapat meletakkan ampersand sebelum nama untuk menghindari peringatan.
Lihat perlsub.
Memanggil POSIX::%s() tidak digunakan lagi
(D usang) Anda memanggil fungsi yang penggunaannya tidak digunakan lagi. Lihat nama fungsinya
di POSIX untuk detailnya.
Tidak bisa chr %f
(F) Anda memberikan nomor yang tidak valid (seperti infinity atau not-a-number) ke "chr".
Tidak dapat mengompres %f dalam paket
(F) Anda mencoba mengompresi angka tak terhingga atau bukan-angka sebagai bilangan bulat yang tidak ditandatangani dengan BER,
yang tidak masuk akal.
Tidak dapat mengompres bilangan bulat dalam paket
(F) Argumen ke pack("w",...) terlalu besar untuk dikompres. BER terkompresi
format integer hanya dapat digunakan dengan bilangan bulat positif, dan Anda mencoba mengompres
jumlah yang sangat besar (>1e308). Lihat "paket" di perlfunc.
Tidak dapat memampatkan angka negatif dalam paket
(F) Argumen ke pack("w",...) negatif. Format integer terkompresi BER dapat
hanya digunakan dengan bilangan bulat positif. Lihat "paket" di perlfunc.
Tidak dapat mengonversi referensi ke %s ke typeglob
(F) Anda memanipulasi tabel simbol Perl secara langsung, menyimpan referensi di dalamnya, lalu mencoba
untuk mengakses simbol itu melalui sintaks Perl konvensional. Akses tersebut memicu Perl untuk
autovivify typeglob itu, tetapi tidak ada konversi legal dari jenis itu
referensi ke typeglob.
Tidak dapat menyalin ke %s
(P) Perl mendeteksi upaya untuk menyalin nilai ke tipe internal yang tidak dapat
langsung ditugaskan ke.
Tidak dapat menemukan penyandian "%s"
(S io) Anda mencoba menerapkan penyandian yang tidak ada ke pegangan file, baik dengan
Buka() or mode bin().
Tidak dapat mengemas %f dengan '%c'
(F) Anda mencoba mengonversi bilangan tak terhingga atau bukan bilangan menjadi bilangan bulat, yang menghasilkan no
akal.
Tidak dapat mencetak %f dengan '%c'
(F) Anda mencoba mencetak angka tak terhingga atau bukan-angka sebagai karakter (%c), yang membuat tidak
nalar. Mungkin maksud Anda '%s', atau sekadar merangkainya?
Tidak dapat mengatur terikat @DB::args
(F) "penelepon" mencoba menyetel @DB::args, tetapi ternyata terikat. Mengikat @DB::args tidak
didukung. (Sebelum kesalahan ini ditambahkan, dulu macet.)
Tidak dapat mengikat array yang tidak dapat diperbaiki
(P) Anda entah bagaimana berhasil memanggil "tie" pada array yang tidak menyimpan jumlah referensi
pada argumennya dan tidak dapat dibuat untuk melakukannya. Array seperti itu bahkan tidak seharusnya
dapat diakses oleh kode Perl, tetapi hanya digunakan secara internal.
Hanya dapat mengompresi bilangan bulat yang tidak ditandatangani dalam paket
(F) Argumen ke pack("w",...) bukan bilangan bulat. Bilangan bulat terkompresi BER
format hanya dapat digunakan dengan bilangan bulat positif, dan Anda mencoba mengompres
sesuatu yang lain. Lihat "paket" di perlfunc.
Tidak dapat memberkati nilai non-referensi
(F) Hanya referensi keras yang dapat diberkati. Beginilah cara Perl "menerapkan" enkapsulasi
objek. Lihat perlobj.
Tidak dapat "mematahkan" dalam topikalizer loop
(F) Anda menyebut "break", tetapi Anda berada di blok "foreach" daripada blok "diberikan".
Anda mungkin bermaksud menggunakan "berikutnya" atau "terakhir".
Tidak dapat "mematahkan" di luar blok tertentu
(F) Anda menyebut "break", tetapi Anda tidak berada di dalam blok "diberikan".
Tidak dapat memanggil metode "%s" pada nilai yang tidak ditentukan
(F) Anda menggunakan sintaks pemanggilan metode, tetapi slotnya diisi oleh referensi objek
atau nama paket berisi nilai yang tidak ditentukan. Sesuatu seperti ini akan mereproduksi
kesalahan:
$BADREF = tidak pasti;
proses $BADREF 1,2,3;
$BADREF->proses(1,2,3);
Tidak dapat memanggil metode "%s" pada referensi yang tidak diberkati
(F) Pemanggilan metode harus tahu dalam paket apa yang seharusnya dijalankan. Biasanya menemukan
ini keluar dari referensi objek yang Anda berikan, tetapi Anda tidak menyediakan objek
referensi dalam hal ini. Referensi bukanlah referensi objek sampai telah
diberkati. Lihat perlobj.
Tidak dapat memanggil metode "%s" tanpa referensi paket atau objek
(F) Anda menggunakan sintaks pemanggilan metode, tetapi slotnya diisi oleh referensi objek
atau nama paket berisi ekspresi yang mengembalikan nilai yang ditentukan yang bukan keduanya
referensi objek atau nama paket. Sesuatu seperti ini akan mereproduksi kesalahan:
$BADREF = 42;
proses $BADREF 1,2,3;
$BADREF->proses(1,2,3);
Tidak bisa menelepon mro_isa_berubah_in() di tabel simbol anonim
(P) Perl menjadi bingung apakah hash adalah hash biasa atau hash tabel simbol
ketika mencoba memperbarui cache @ISA.
Tidak bisa menelepon mro_method_changed_in() di tabel simbol anonim
(F) Modul XS mencoba memanggil "mro_method_changed_in" pada hash yang tidak dilampirkan
ke tabel simbol.
Tidak dapat melakukan chdir ke %s
(F) Anda memanggil "perl -x/foo/bar", tapi /foo/bar bukan direktori yang dapat Anda chdir
untuk, mungkin karena itu tidak ada.
Tidak dapat memeriksa sistem file skrip "%s" untuk nosuid
(P) Untuk beberapa alasan Anda tidak dapat memeriksa sistem file skrip untuk nosuid.
Tidak dapat memaksa %s ke %s dalam %s
(F) Jenis SV tertentu, khususnya entri tabel simbol nyata (typeglobs), tidak dapat
dipaksa untuk berhenti menjadi apa adanya. Jadi Anda tidak bisa mengatakan hal-hal seperti:
*foo += 1;
Anda BISA mengatakan
$foo = *foo;
$foo += 1;
tapi kemudian $foo tidak lagi berisi gumpalan.
Tidak dapat "melanjutkan" di luar blok kapan
(F) Anda memanggil "lanjutkan", tetapi Anda tidak berada di dalam blok "kapan" atau "default".
Tidak dapat membuat kotak surat pipa
(P) Sebuah kesalahan khusus untuk VMS. Prosesnya mengalami kehabisan kuota atau lainnya
masalah pipa.
Tidak dapat mendeklarasikan %s di "%s"
(F) Hanya variabel skalar, array, dan hash yang dapat dideklarasikan sebagai "my", "our" atau "state"
variabel. Mereka harus memiliki pengenal biasa sebagai nama.
Tidak dapat "default" di luar topikalizer
(F) Anda telah menggunakan blok "default" yang tidak berada di dalam loop "foreach" maupun a
blok "diberikan". (Perhatikan bahwa kesalahan ini dikeluarkan saat keluar dari blok "default", jadi
Anda tidak akan mendapatkan kesalahan jika Anda menggunakan "lanjutkan" yang eksplisit.)
Tidak dapat melakukan pengeditan di tempat: %s bukan file biasa
(S di tempat) Anda mencoba menggunakan -i aktifkan file khusus, seperti file di / dev,
FIFO atau direktori yang tidak dapat diedit. File diabaikan.
Tidak dapat melakukan pengeditan di tempat pada %s: %s
(S inplace) Pembuatan file baru gagal karena alasan yang ditunjukkan.
Tidak dapat melakukan pengeditan di tempat tanpa cadangan
(F) Anda menggunakan sistem seperti MS-DOS yang menjadi bingung jika Anda mencoba membaca dari a
file yang dihapus (tetapi masih dibuka). Anda harus mengatakan "-i.bak", atau semacamnya.
Tidak dapat melakukan pengeditan di tempat: %s tidak akan unik
(S inplace) Sistem file Anda tidak mendukung nama file yang lebih panjang dari 14 karakter dan
Perl tidak dapat membuat nama file unik selama pengeditan di tempat dengan -i saklar.
File diabaikan.
Tidak dapat melakukan %s("%s") di lokal non-UTF-8; diselesaikan menjadi "%s".
(W locale) Anda 1) berjalan di bawah ""use locale""; 2) lokal saat ini bukan a
UTF-8 satu; 3) Anda mencoba melakukan operasi perubahan kasus yang ditentukan pada yang ditentukan
karakter Unicode; dan 4) hasil operasi ini akan menggabungkan Unicode dan lokal
aturan, yang mungkin bertentangan. Mencampur jenis aturan yang berbeda dilarang, jadi
operasi tidak dilakukan; sebaliknya hasilnya adalah nilai yang ditunjukkan, yang merupakan yang terbaik
tersedia yang menggunakan aturan Unicode sepenuhnya. Itu ternyata hampir selalu menjadi
karakter asli, tidak berubah.
Biasanya merupakan ide yang buruk untuk mencampur lokal non-UTF-8 dan Unicode, dan masalah ini adalah satu
dari alasan mengapa. Peringatan ini dimunculkan ketika aturan Unicode biasanya menyebabkan
hasil operasi ini mengandung karakter yang berada dalam kisaran yang ditentukan oleh
lokal, 0..255, dan karenanya tunduk pada aturan lokal, bukan Unicode.
Jika Anda menggunakan lokal murni untuk karakteristiknya yang terkait dengan hal-hal seperti itu
pemformatan numerik dan waktu (dan bukan "LC_CTYPE"), pertimbangkan untuk menggunakan bentuk terbatas dari
pragma lokal (lihat "pragma "gunakan lokal" di perlllocale) seperti
""gunakan lokal ':not_characters'"".
Perhatikan bahwa operasi pengubahan huruf besar-kecil yang gagal dilakukan sebagai akibat dari "/i" yang tidak peka huruf besar-kecil
pencocokan ekspresi reguler akan muncul dalam peringatan ini sebagai operasi "fc"
(karena itulah yang disebut mesin ekspresi reguler di belakang layar.)
Tidak bisa melakukan waitpid dengan bendera
(F) Mesin ini juga tidak memiliki tunggu() or tunggu4(), jadi hanya tunggu() tanpa
bendera ditiru.
Tidak dapat meniru -%s di #! garis
(F) #! baris menentukan sakelar yang tidak masuk akal pada saat ini. Untuk
contoh, akan agak konyol untuk menempatkan -x pada #! garis.
Tidak dapat %s %s-endian %ss di platform ini
(F) Urutan byte platform Anda bukan big-endian atau little-endian, atau memiliki
ukuran pointer yang sangat aneh. Mengepak dan membongkar titik apung big- atau little-endian
nilai-nilai dan pointer mungkin tidak mungkin. Lihat "paket" di perlfunc.
Tidak dapat menjalankan "%s": %s
(Kami eksekutif) A sistem(), exec (), atau panggilan terbuka yang disalurkan tidak dapat menjalankan program yang disebutkan
untuk alasan yang ditunjukkan. Alasan umum meliputi: izin salah pada
file, file tidak ditemukan di $ENV{PATH}, executable yang dimaksud dikompilasi untuk
arsitektur lain, atau #! baris dalam skrip menunjuk ke juru bahasa yang tidak bisa
dijalankan untuk alasan yang sama. (Atau mungkin sistem Anda tidak mendukung #! sama sekali.)
Tidak dapat menjalankan %s
(F) Perl mencoba menjalankan program yang ditunjukkan untuk Anda karena itulah yang
#! kata garis. Jika bukan itu yang Anda inginkan, Anda mungkin perlu menyebutkan "perl" di #!
garis di suatu tempat.
Tidak dapat menjalankan %s
(F) Anda menggunakan -S switch, tetapi salinan skrip yang akan dieksekusi ditemukan di PATH
tidak memiliki izin yang benar.
Tidak dapat menemukan opnumber untuk "%s"
(F) Serangkaian bentuk "CORE::word" diberikan kepada prototipe(), tetapi tidak ada bawaan
dengan nama "kata".
Tidak dapat menemukan properti karakter %s "%s"
(F) Anda menggunakan "\p{}" atau "\P{}" tetapi properti karakter dengan nama itu tidak boleh
ditemukan. Mungkin Anda salah mengeja nama properti? Lihat "Properti dapat diakses
melalui \p{} dan \P{}" di perluniprops untuk daftar lengkap resmi yang tersedia
properti.
Tidak dapat menemukan label %s
(F) Anda mengatakan untuk mendapatkan label yang tidak disebutkan di mana pun bahwa itu mungkin bagi kami
pergi ke. Lihat "goto" di perlfunc.
Tidak dapat menemukan %s di PATH
(F) Anda menggunakan -S switch, tetapi skrip yang akan dieksekusi tidak dapat ditemukan di PATH.
Tidak dapat menemukan %s di PATH, '.' tidak di PATH
(F) Anda menggunakan -S switch, tetapi skrip yang akan dieksekusi tidak dapat ditemukan di PATH,
atau setidaknya tidak dengan izin yang benar. Script ada di saat ini
direktori, tetapi PATH melarang menjalankannya.
Tidak dapat menemukan terminator string %s di mana pun sebelum EOF
(F) Senar Perl dapat meregang pada beberapa baris. Pesan ini berarti bahwa penutup
pembatas dihilangkan. Karena tanda kutip tanda kutip menghitung tingkat bersarang, berikut ini
tidak ada tanda kurung terakhirnya:
print q(Karakter '(' memulai komentar samping.);
Jika Anda mendapatkan kesalahan ini dari dokumen di sini, Anda mungkin menyertakan yang tidak terlihat
spasi putih sebelum atau setelah tag penutup Anda atau mungkin tidak ada jeda baris setelahnya.
Editor pemrogram yang baik akan memiliki cara untuk membantu Anda menemukan karakter ini (atau kekurangan
karakter). Lihat perlop untuk detail lengkap di sini-dokumen.
Tidak dapat menemukan definisi properti Unicode "%s"
(F) Anda mungkin telah mencoba menggunakan "\p" yang berarti properti Unicode (misalnya
"\p{Lu}" cocok dengan semua huruf besar). Jika Anda bermaksud menggunakan properti Unicode,
lihat "Properti yang dapat diakses melalui \p{} dan \P{}" di perluniprops untuk daftar lengkapnya
dari properti yang tersedia. Jika Anda tidak bermaksud menggunakan properti Unicode, hindari
"\p", baik dengan "\\p" (hanya "\p") atau dengan "\Q\p" (sisa string, atau sampai
"\E").
Tidak bisa garpu: %s
(F) Terjadi kesalahan fatal saat mencoba melakukan fork saat membuka pipa.
Tidak bisa garpu, coba lagi dalam 5 detik
(Pipa W) Sebuah garpu dalam pipa terbuka gagal dengan EAGAIN dan akan dicoba lagi setelah lima
detik.
Tidak bisa mendapatkan filespec - buffer stat basi?
(S) Peringatan khusus untuk VMS. Ini muncul karena perbedaan antara akses
cek di bawah VMS dan di bawah model Unix yang diasumsikan Perl. Di bawah VMS, pemeriksaan akses adalah
dilakukan dengan nama file, bukan dengan bit di buffer stat, sehingga ACL dan lainnya
proteksi dapat diperhitungkan. Sayangnya, Perl berasumsi bahwa stat
buffer berisi semua informasi yang diperlukan, dan meneruskannya, alih-alih spesifikasi file,
ke rutinitas pemeriksaan akses. Ini akan mencoba untuk mengambil filespec menggunakan perangkat
name dan FID ada di buffer stat, tetapi ini hanya berfungsi jika Anda belum membuat
panggilan berikutnya ke CRTL stat () rutin, karena nama perangkat ditimpa
dengan setiap panggilan. Jika peringatan ini muncul, pencarian nama gagal, dan akses-
pemeriksaan rutin menyerah dan kembali SALAH, hanya untuk bersikap konservatif. (Catatan: The
pemeriksaan akses rutin mengetahui tentang operator "stat" Perl dan pengujian file, jadi Anda
seharusnya tidak pernah melihat peringatan ini sebagai tanggapan atas perintah Perl; itu muncul hanya jika beberapa
kode internal mengambil buffer stat dengan ringan.)
Tidak bisa mendapatkan nama perangkat kotak surat pipa
(P) Sebuah kesalahan khusus untuk VMS. Setelah membuat kotak surat untuk bertindak sebagai pipa, Perl tidak bisa
mengambil namanya untuk digunakan nanti.
Tidak bisa mendapatkan nilai parameter SYSGEN untuk MAXBUF
(P) Sebuah kesalahan khusus untuk VMS. Perl bertanya $GETSYI seberapa besar Anda ingin kotak surat Anda
buffer menjadi, dan tidak mendapatkan jawaban.
Tidak bisa "goto" ke tengah loop foreach
(F) Pernyataan "goto" dieksekusi untuk melompat ke tengah perulangan foreach. Anda
tidak bisa ke sana dari sini. Lihat "goto" di perlfunc.
Tidak bisa "keluar" dari blok semu
(F) Pernyataan "goto" dieksekusi untuk melompat keluar dari apa yang mungkin terlihat seperti blok,
kecuali bahwa itu bukan blok yang tepat. Ini biasanya terjadi jika Anda mencoba melompat keluar dari
a menyortir() blok atau subrutin, yang merupakan larangan-tidak. Lihat "goto" di perlfunc.
Tidak dapat masuk ke subrutin dari eval-%s
(F) Panggilan "goto subrutin" tidak dapat digunakan untuk melompat keluar dari "string" atau blok eval.
Tidak dapat mengambil subrutin dari sub-urutan (atau panggilan balik serupa)
(F) Panggilan "goto subrutin" tidak dapat digunakan untuk melompat keluar dari sub perbandingan untuk a
menyortir(), atau dari panggilan balik serupa (seperti mengurangi() fungsi dalam Daftar::Util).
Tidak dapat masuk ke subrutin di luar subrutin
(F) Panggilan "goto subrutin" yang sangat ajaib hanya dapat menggantikan satu panggilan subrutin untuk
lain. Itu tidak dapat memproduksi satu dari seluruh kain. Secara umum Anda harus
menyebutnya hanya dari rutinitas AUTOLOAD. Lihat "goto" di perlfunc.
Tidak dapat mengabaikan sinyal CHLD, memaksa ke default
(Sinyal W) Perl telah mendeteksi bahwa itu sedang dijalankan dengan sinyal SIGCHLD (terkadang
dikenal sebagai SIGCLD) dinonaktifkan. Karena menonaktifkan sinyal ini akan mengganggu
penentuan status keluar dari proses anak, Perl telah mengatur ulang sinyal ke
nilai default. Situasi ini biasanya menunjukkan bahwa program induk di mana:
Perl mungkin berjalan (misalnya cron) sedang sangat ceroboh.
Tidak dapat mematikan ID proses non-numerik
(F) Pengidentifikasi proses harus (ditandatangani) bilangan bulat. Ini adalah kesalahan fatal untuk mencoba
membunuh() pengidentifikasi proses yang tidak terdefinisi, string kosong atau non-numerik.
Tidak dapat "bertahan" di luar blok loop
(F) Pernyataan "terakhir" dijalankan untuk keluar dari blok saat ini, kecuali bahwa
ada masalah kecil yang disebut tidak ada blok saat ini. Perhatikan bahwa "jika"
atau blok "lain" tidak dihitung sebagai blok "loop", seperti halnya blok yang tidak diberikan kepada
menyortir(), peta() or grep(). Anda biasanya dapat menggandakan keriting untuk mendapatkan efek yang sama
meskipun, karena ikal bagian dalam akan dianggap sebagai blok yang berputar sekali. Melihat
"terakhir" di perlfunc.
Tidak dapat linierisasi tabel simbol anonim
(F) Perl mencoba menghitung urutan resolusi metode (MRO) dari sebuah paket, tetapi gagal
karena paket simpanan tidak memiliki nama.
Tidak dapat memuat '%s' untuk modul %s
(F) Modul yang Anda coba muat gagal memuat ekstensi dinamis. Ini mungkin juga
berarti Anda memutakhirkan versi Perl Anda ke versi yang tidak kompatibel dengan versi lama Anda
ekstensi dinamis (yang diketahui terjadi di antara versi utama Perl), atau (lebih
kemungkinan) bahwa ekstensi dinamis Anda dibuat dengan versi perpustakaan yang lebih lama
yang diinstal pada sistem Anda. Anda mungkin perlu membangun kembali dinamika lama Anda
ekstensi.
Tidak dapat melokalkan variabel leksikal %s
(F) Anda menggunakan lokal pada nama variabel yang sebelumnya dideklarasikan sebagai leksikal
variabel menggunakan "saya" atau "negara". Ini tidak diperbolehkan. Jika Anda ingin melokalkan a
variabel paket dengan nama yang sama, memenuhi syarat dengan nama paket.
Tidak dapat melokalisasi melalui referensi
(F) Anda mengatakan sesuatu seperti "local $$ref", yang saat ini tidak dapat ditangani oleh Perl, karena
ketika pergi untuk mengembalikan nilai lama dari apa pun yang ditunjukkan $ref setelah lingkup
itu lokal() selesai, tidak dapat dipastikan bahwa $ref akan tetap menjadi referensi.
Tidak dapat menemukan %s
(F) Anda mengatakan untuk "melakukan" (atau "memerlukan", atau "menggunakan") file yang tidak dapat ditemukan. Perl
mencari file di semua lokasi yang disebutkan di @INC, kecuali nama file
termasuk path lengkap ke file. Mungkin Anda perlu mengatur PERL5LIB atau PERL5OPT
variabel lingkungan untuk mengatakan di mana perpustakaan tambahan berada, atau mungkin skrip perlu
tambahkan nama perpustakaan ke @INC. Atau mungkin Anda hanya salah mengeja nama file. Melihat
"memerlukan" di perlfunc dan lib.
Tidak dapat menemukan auto/%s.al di @INC
(F) Fungsi (atau metode) dipanggil dalam paket yang memungkinkan pemuatan otomatis, tetapi ada
tidak ada fungsi untuk memuat otomatis. Penyebab yang paling mungkin adalah kesalahan cetak dalam suatu fungsi/metode
nama atau kegagalan untuk "AutoSplit" file, katakanlah, dengan melakukan "make install".
Tidak dapat menemukan objek yang dapat dimuat untuk modul %s di @INC
(F) Modul yang Anda muat mencoba memuat perpustakaan eksternal, seperti misalnya,
foo.jadi or bar.dll, tetapi modul DynaLoader tidak dapat menemukan perpustakaan ini. Melihat
Dyna Loader.
Tidak dapat menemukan metode objek "%s" melalui paket "%s"
(F) Anda memanggil sebuah metode dengan benar, dan itu dengan benar menunjukkan sebuah paket yang berfungsi sebagai
sebuah kelas, tetapi paket itu tidak mendefinisikan metode tertentu, juga tidak ada
kelas dasar. Lihat perlobj.
Tidak dapat menemukan metode objek "%s" melalui paket "%s" (mungkin Anda lupa memuat "%s"?)
(F) Anda memanggil metode pada kelas yang tidak ada, dan metode itu tidak mungkin
ditemukan di UNIVERSAL. Ini sering berarti bahwa suatu metode memerlukan paket yang belum
telah dimuat.
Tidak dapat menemukan paket %s untuk @%s::ISA
(Sintaks W) Array @ISA berisi nama paket lain yang sepertinya tidak
ada.
Tidak dapat menemukan PerlIO%s
(F) Anda mencoba menggunakan di Buka() lapisan PerlIO yang tidak ada, misalnya open(FH,
">:nosuchlayer", "somefile").
Tidak dapat membuat penetapan daftar ke %ENV pada sistem ini
(F) Penetapan daftar ke %ENV tidak didukung pada beberapa sistem, terutama VMS.
Tidak dapat membuat simbol yang dimuat menjadi global pada platform ini saat memuat %s
(S) Sebuah modul melewati bendera 0x01 ke DynaLoader::dl_load_file() untuk meminta itu
simbol dari file yang disebutkan tersedia secara global dalam proses, tetapi itu
fungsionalitas tidak tersedia di platform ini. Sementara modul kemungkinan akan tetap
berfungsi, ini dapat mencegah juru bahasa Perl memuat ekstensi berbasis XS lainnya
yang perlu menautkan langsung ke fungsi yang ditentukan dalam kode C atau XS dalam pernyataan
file.
Tidak dapat mengubah %s di %s
(F) Anda tidak diizinkan untuk menetapkan item yang ditunjukkan, atau mencoba mengubahnya,
seperti dengan kenaikan otomatis.
Tidak dapat mengubah substring yang tidak ada
(P) Rutinitas internal yang melakukan penugasan ke a substr() diberikan NULL.
Tidak dapat mengubah panggilan subrutin non-nilai
(F) Subrutin yang dimaksudkan untuk digunakan dalam konteks nilai harus dideklarasikan seperti itu. Melihat
"Lnilai subrutin" di perlsub.
Tidak dapat mengubah referensi ke %s dalam tugas %s
(F) Hanya sejumlah konstruksi yang dapat digunakan sebagai argumen untuk referensi
konstruktor di sisi kiri tugas, dan apa yang Anda gunakan bukan salah satunya
mereka. Lihat "Menetapkan ke Referensi" di perlref.
Tidak dapat mengubah referensi ke array tanda kurung yang dilokalkan dalam penetapan daftar
(F) Menetapkan ke "\local(@array)" atau "\(local @array)" tidak didukung, karena tidak
jelas apa yang harus dilakukan. Jika Anda bermaksud membuat @array merujuk ke yang lain
array, gunakan "\@array = \@other_array". Jika Anda ingin membuat elemen @array
alias skalar yang dirujuk di sisi kanan, gunakan "\(@array) =
@scalar_refs".
Tidak dapat mengubah referensi ke hash yang dikurung dalam daftar tugas
(F) Menetapkan ke "\(%hash)" tidak didukung. Jika Anda bermaksud membuat %hash merujuk ke
beberapa hash lainnya, gunakan "\%hash = \%other_hash". Jika Anda ingin membuat elemen dari
%hash menjadi alias dari skalar yang dirujuk di sisi kanan, gunakan irisan hash:
"\@hash{@keys} = @those_scalar_refs".
Tidak dapat msgrcv ke read-only var
(F) Target msgrcv harus dapat dimodifikasi untuk digunakan sebagai buffer penerima.
Tidak dapat "berikutnya" di luar blok loop
(F) Pernyataan "berikutnya" dijalankan untuk mengulangi blok saat ini, tetapi tidak ada
blok saat ini. Perhatikan bahwa blok "jika" atau "lain" tidak dihitung sebagai blok "loopish",
seperti yang tidak diberikan blok kepada menyortir(), peta() or grep(). Anda biasanya dapat menggandakan
keriting untuk mendapatkan efek yang sama, karena keriting bagian dalam akan dianggap sebagai
blok yang loop sekali. Lihat "berikutnya" di perlfunc.
Tidak dapat membuka %s: %s
(S inplace) Pembukaan file secara implisit melalui penggunaan pegangan file "<>", baik
secara implisit di bawah sakelar baris perintah "-n" atau "-p", atau secara eksplisit, gagal untuk
alasan yang ditunjukkan. Biasanya ini karena Anda tidak memiliki izin membaca untuk sebuah file
yang Anda beri nama pada baris perintah.
(F) Anda mencoba menelepon Perl dengan -e beralih, tapi / dev / null (atau operasi Anda
setara sistem) tidak dapat dibuka.
Tidak dapat membuka referensi
(W io) Anda mencoba membuka referensi skalar untuk membaca atau menulis, menggunakan 3-arg
Buka() sintaksis:
buka FH, '>', $ref;
tetapi versi perl Anda dikompilasi tanpa perlio, dan bentuk terbuka ini tidak
didukung.
Tidak dapat membuka pipa dua arah
(Pipa W) Anda mencoba mengatakan "buka(CMD, "|cmd|")", yang tidak didukung. Anda dapat mencoba
salah satu dari beberapa modul di perpustakaan Perl untuk melakukan ini, seperti IPC::Open2.
Sebagai alternatif, arahkan output pipa ke file menggunakan ">", lalu baca di bawah a
menangani file yang berbeda.
Tidak dapat membuka file kesalahan %s sebagai stderr
(F) Sebuah kesalahan khusus untuk VMS. Perl melakukan pengalihan baris perintahnya sendiri, dan
tidak dapat membuka file yang ditentukan setelah '2>' atau '2>>' pada baris perintah untuk menulis.
Tidak dapat membuka file masukan %s sebagai stdin
(F) Sebuah kesalahan khusus untuk VMS. Perl melakukan pengalihan baris perintahnya sendiri, dan
tidak dapat membuka file yang ditentukan setelah '<' pada baris perintah untuk membaca.
Tidak dapat membuka file keluaran %s sebagai stdout
(F) Sebuah kesalahan khusus untuk VMS. Perl melakukan pengalihan baris perintahnya sendiri, dan
tidak dapat membuka file yang ditentukan setelah '>' atau '>>' pada baris perintah untuk menulis.
Tidak dapat membuka pipa keluaran (nama: %s)
(P) Sebuah kesalahan khusus untuk VMS. Perl melakukan pengalihan baris perintahnya sendiri, dan
tidak dapat membuka pipa untuk mengirim data yang ditujukan untuk stdout.
Tidak dapat membuka skrip perl "%s": %s
(F) Skrip yang Anda tentukan tidak dapat dibuka karena alasan yang ditunjukkan.
Jika Anda men-debug skrip yang menggunakan #!, dan biasanya bergantung pada $PATH . shell
pencarian, opsi -S menyebabkan Perl melakukan pencarian itu, jadi Anda tidak perlu mengetik
path atau "`yang $scriptname`".
Tidak dapat membaca lingkungan CRTL
(S) Peringatan khusus untuk VMS. Perl mencoba membaca elemen %ENV dari CRTL
array lingkungan internal dan menemukan array hilang. Anda perlu mencari
di mana CRTL Anda salah menempatkan lingkungannya atau tentukan PERL_ENV_TABLES (lihat perlvms) jadi
lingkungan itu tidak dicari.
Tidak dapat "mengulang" di luar blok loop
(F) Pernyataan "ulangi" dijalankan untuk memulai kembali blok saat ini, tetapi tidak ada
blok saat ini. Perhatikan bahwa blok "jika" atau "lain" tidak dihitung sebagai blok "loopish",
seperti yang tidak diberikan blok kepada menyortir(), peta() or grep(). Anda biasanya dapat menggandakan
keriting untuk mendapatkan efek yang sama, karena keriting bagian dalam akan dianggap sebagai
blok yang loop sekali. Lihat "ulangi" di perlfunc.
Tidak dapat menghapus %s: %s, melewatkan file
(S inplace) Anda meminta edit di tempat tanpa membuat file cadangan. Perl adalah
tidak dapat menghapus file asli untuk menggantinya dengan file yang dimodifikasi. Filenya adalah
dibiarkan tidak dimodifikasi.
Tidak dapat mengganti nama %s menjadi %s: %s, melewatkan file
(S inplace) Penggantian nama dilakukan oleh -i sakelar gagal karena suatu alasan, mungkin karena
Anda tidak memiliki izin menulis ke direktori.
Tidak dapat membuka kembali pipa input (nama: %s) dalam mode biner
(P) Sebuah kesalahan khusus untuk VMS. Perl mengira stdin adalah pipa, dan mencoba membukanya kembali
untuk menerima data biner. Sayangnya, itu gagal.
Tidak dapat mewakili karakter untuk Ox%X di platform ini
(F) Ada batasan keras untuk seberapa besar poin kode karakter dapat disebabkan oleh
sifat dasar UTF-8, terutama pada platform EBCDIC. Poin kode yang diberikan
melebihi itu. Satu-satunya solusi adalah tidak menggunakan titik kode yang begitu besar.
Tidak dapat mengatur ulang %ENV pada sistem ini
(F) Anda memanggil "reset('E')" atau serupa, yang mencoba mengatur ulang semua variabel di
paket saat ini dimulai dengan "E". Dalam paket utama, itu termasuk %ENV.
Menyetel ulang %ENV tidak didukung pada beberapa sistem, terutama VMS.
Tidak dapat menyelesaikan metode "%s" kelebihan beban "%s" dalam paket "%s"
(F)(P) Kesalahan menyelesaikan kelebihan beban yang ditentukan oleh nama metode (sebagai lawan dari a
referensi subrutin): tidak ada metode yang dapat dipanggil melalui paket. Jika nama metodenya adalah
"???", ini adalah kesalahan internal.
Tidak dapat mengembalikan %s dari subrutin nilai
(F) Perl mendeteksi upaya untuk mengembalikan nilai ilegal (seperti sementara atau hanya baca
nilai) dari subrutin yang digunakan sebagai nilai. Ini tidak diperbolehkan.
Tidak dapat kembali di luar subrutin
(F) Pernyataan kembali dieksekusi dalam kode arus utama, yaitu, di mana tidak ada
panggilan subrutin untuk kembali keluar. Lihat perlsub.
Tidak dapat mengembalikan %s ke konteks skalar nilai
(F) Anda mencoba mengembalikan array atau hash lengkap dari subrutin nilai, tetapi Anda
memanggil subrutin dengan cara yang membuat Perl berpikir kamu hanya ingin mengembalikan satu
nilai. Anda mungkin bermaksud menulis tanda kurung di sekitar panggilan ke subrutin,
yang memberi tahu Perl bahwa panggilan itu harus dalam konteks daftar.
Tidak dapat membuat skrip status "%s"
(P) Untuk beberapa alasan Anda tidak bisa fstat () skrip meskipun Anda sudah membukanya.
Aneh.
Tidak dapat mengambil log %g
(F) Untuk bilangan real biasa, Anda tidak dapat mengambil logaritma dari bilangan negatif atau
nol. Ada paket Math::Complex yang menjadi standar dengan Perl, jika Anda
benar-benar ingin melakukan itu untuk angka negatif.
Tidak dapat mengambil sqrt dari %g
(F) Untuk bilangan real biasa, Anda tidak dapat mengambil akar kuadrat dari bilangan negatif.
Ada paket Math::Complex yang menjadi standar dengan Perl, jika Anda benar-benar
ingin melakukan itu.
Tidak dapat membatalkan subrutin aktif
(F) Anda tidak dapat menentukan rutinitas yang sedang berjalan. Namun, Anda dapat mendefinisikan ulang
itu saat sedang berjalan, dan Anda bahkan dapat membatalkan definisi subrutin yang telah didefinisikan ulang saat yang lama
rutinitas berjalan. pergilah.
Tidak dapat meningkatkan %s (%d) ke %d
(P) Rutinitas sv_upgrade internal menambahkan "anggota" ke SV, menjadikannya lebih
jenis khusus SV. Namun, beberapa tipe SV teratas sangat terspesialisasi, sehingga
mereka tidak dapat saling dipertukarkan. Pesan ini menunjukkan bahwa konversi seperti itu adalah
berusaha.
Tidak dapat menggunakan '%c' setelah -mname
(F) Anda mencoba menelepon Perl dengan -m beralih, tetapi Anda meletakkan sesuatu selain "="
setelah nama modul.
Tidak dapat menggunakan hash sebagai referensi
(F) Anda mencoba menggunakan hash sebagai referensi, seperti dalam "%foo->{"bar"}" atau
"%$ref->{"halo"}". Versi perl <= 5.22.0 digunakan untuk mengizinkan sintaks ini, tetapi
seharusnya tidak. Ini tidak digunakan lagi di Perl 5.6.1.
Tidak dapat menggunakan array sebagai referensi
(F) Anda mencoba menggunakan array sebagai referensi, seperti dalam "@foo->[23]" atau "@$ref->[99]".
Versi perl <= 5.22.0 digunakan untuk mengizinkan sintaks ini, tetapi seharusnya tidak. Ini
tidak digunakan lagi di Perl 5.6.1.
Tidak dapat menggunakan tabel simbol anonim untuk pencarian metode
(F) Rutin internal yang melakukan pencarian metode diberikan tabel simbol yang
tidak memiliki nama. Tabel simbol dapat menjadi anonim misalnya dengan tidak mendefinisikan
simpanan: "undef %Some::Package::".
Tidak dapat menggunakan nilai yang tidak ditentukan sebagai referensi %s
(F) Nilai yang digunakan baik sebagai referensi keras atau referensi simbolik harus didefinisikan
nilai. Ini membantu untuk menghindari beberapa kesalahan berbahaya.
Tidak dapat menggunakan bareword ("%s") sebagai referensi %s saat "referensi ketat" sedang digunakan
(F) Hanya referensi keras yang diizinkan oleh "referensi ketat". Referensi simbolik adalah
tidak diizinkan. Lihat perlref.
Tidak dapat menggunakan %! karena Errno.pm tidak tersedia
(F) Pertama kali "%!" hash digunakan, Perl secara otomatis memuat Errno.pm
modul. Modul Errno diharapkan untuk mengikat %! hash untuk memberikan nama simbolis untuk
$! nilai-nilai kesalahan.
Tidak dapat menggunakan '<' dan '>' setelah mengetik '%c' di %s
(F) Suatu tipe tidak dapat dipaksa untuk memiliki urutan byte big-endian dan little-endian pada
bersamaan, jadi kombinasi pengubah ini tidak diperbolehkan. Lihat "paket" di
perfunc.
Tidak dapat menggunakan 'defined(@array)' (Mungkin Anda harus menghilangkan didefinisikan()?)
(F) didefinisikan() tidak berguna pada array karena memeriksa undefined skalar nilai.
Jika Anda ingin melihat apakah array kosong, gunakan saja "if (@array) { # not kosong }" untuk
contoh.
Tidak dapat menggunakan 'defined(%hash)' (Mungkin Anda harus menghilangkan didefinisikan()?)
(F) "defined()" biasanya tidak tepat pada hash.
Meskipun "didefinisikan %hash" salah pada hash biasa yang belum digunakan, itu menjadi benar di
beberapa keadaan yang tidak jelas, termasuk iterator, referensi lemah, nama simpanan,
bahkan tetap benar setelah "undef %hash". Hal-hal ini membuat "didefinisikan %hash" cukup
tidak berguna dalam praktik, sehingga sekarang menghasilkan kesalahan fatal.
Jika centang untuk tidak kosong adalah yang Anda inginkan, maka letakkan saja dalam konteks boolean (lihat
"Nilai skalar" di perldata):
jika (% hash) {
# tidak kosong
}
Jika Anda telah "mendefinisikan %Foo::Bar::QUUX" untuk memeriksa apakah variabel paket seperti itu ada
maka itu tidak pernah benar-benar dapat diandalkan, dan bukan cara yang baik untuk menanyakan tentang
fitur paket, atau apakah itu dimuat, dll.
Tidak dapat menggunakan %s untuk variabel loop
(P) Pengurai menjadi bingung ketika mencoba mengurai perulangan "foreach".
Tidak dapat menggunakan %s global di "%s"
(F) Anda mencoba mendeklarasikan variabel magis sebagai variabel leksikal. Ini bukan
diperbolehkan, karena sihir hanya dapat diikat ke satu lokasi (yaitu global
variabel) dan akan sangat membingungkan memiliki variabel dalam program Anda yang
tampak seperti variabel ajaib tetapi tidak.
Tidak dapat menggunakan '%c' dalam grup dengan urutan byte berbeda di %s
(F) Anda mencoba memaksakan urutan byte yang berbeda pada tipe yang sudah ada di dalam a
grup dengan pengubah urutan byte. Misalnya, Anda tidak dapat memaksa little-endianness pada a
jenis yang ada di dalam grup big-endian.
Tidak dapat menggunakan "%s saya" dalam perbandingan pengurutan
(F) Variabel global $a dan $b dicadangkan untuk perbandingan pengurutan. Anda menyebutkan
$a atau $b di baris yang sama dengan operator <=> atau cmp, dan variabel sebelumnya
dideklarasikan sebagai variabel leksikal. Baik memenuhi syarat variabel sortir dengan
nama paket, atau ganti nama variabel leksikal.
Tidak dapat menggunakan %s ref sebagai %s ref
(F) Anda telah mencampuradukkan jenis referensi Anda. Anda harus mereferensikan referensi dari
jenis yang dibutuhkan. Anda dapat menggunakan referensi() berfungsi untuk menguji jenis referensi, jika
perlu.
Tidak dapat menggunakan string ("%s") sebagai referensi %s saat "referensi ketat" digunakan
Tidak dapat menggunakan string ("%s"...) sebagai referensi %s saat "referensi ketat" digunakan
(F) Anda telah memberi tahu Perl untuk mereferensikan string, sesuatu yang "menggunakan ketat" blok untuk
mencegahnya terjadi secara tidak sengaja. Lihat "Referensi simbolik" di perlref. Ini bisa jadi
dipicu oleh "@" atau "$" dalam string yang dikutip ganda segera sebelum interpolasi
sebuah variabel, misalnya dalam "user @$twitter_id", yang mengatakan untuk memperlakukan isi dari
$twitter_id sebagai referensi larik; gunakan "\" untuk memiliki simbol "@" literal diikuti oleh
isi $twitter_id: "pengguna \@$twitter_id".
Tidak dapat menggunakan subskrip pada %s
(F) Kompilator mencoba menafsirkan ekspresi tanda kurung sebagai subskrip. Tapi untuk
kiri tanda kurung adalah ekspresi yang tidak terlihat seperti hash atau array
referensi, atau hal lain yang dapat disubscript.
Tidak dapat menggunakan \%c untuk mengartikan $%c dalam ekspresi
(Sintaks W) Dalam ekspresi biasa, garis miring terbalik adalah operator unary yang membuat a
mengacu pada argumennya. Penggunaan garis miring terbalik untuk menunjukkan referensi balik ke a
substring yang cocok hanya valid sebagai bagian dari pola ekspresi reguler. Mencoba melakukan
ini dalam kode Perl biasa menghasilkan nilai yang terlihat seperti
SKALA(0xdecaf). Gunakan formulir $1 sebagai gantinya.
Tidak dapat melemahkan nonreferensi
(F) Anda berusaha melemahkan sesuatu yang bukan acuan. Hanya referensi yang bisa
menjadi lemah.
Tidak dapat "ketika" di luar topikalizer
(F) Anda telah menggunakan Kapan() blok yang tidak berada di dalam loop "foreach" atau "diberikan"
memblokir. (Perhatikan bahwa kesalahan ini dikeluarkan saat keluar dari blok "kapan", jadi Anda tidak akan
dapatkan kesalahan jika kecocokan gagal, atau jika Anda menggunakan "lanjutkan" yang eksplisit.)
Tidak dapat x= ke nilai hanya-baca
(F) Anda mencoba mengulang nilai konstan (seringkali nilai tidak terdefinisi) dengan
operator penugasan, yang menyiratkan memodifikasi nilai itu sendiri. Mungkin Anda perlu
salin nilainya ke sementara, dan ulangi itu.
Karakter setelah "\c" harus ASCII yang dapat dicetak
(F) Dalam "\cX", X harus berupa karakter ASCII yang dapat dicetak (non-kontrol).
Perhatikan bahwa karakter ASCII yang tidak memetakan untuk mengontrol karakter tidak disarankan, dan
akan menghasilkan peringatan (bila diaktifkan) ""\c%c" lebih jelas ditulis hanya sebagai
"%S"".
Karakter dalam format 'C' dibungkus dalam paket
(Paket W) Katamu
paket("C", $x)
di mana $x kurang dari 0 atau lebih dari 255; format "C" hanya untuk penyandian
karakter sistem operasi asli (ASCII, EBCDIC, dan sebagainya) dan bukan untuk Unicode
karakter, jadi Perl berperilaku seolah-olah yang Anda maksud
paket("C", $x & 255)
Jika Anda benar-benar ingin mengemas titik kode Unicode, gunakan format "U".
Karakter dalam format 'c' dibungkus dalam paket
(Paket W) Katamu
paket("c", $x)
di mana $x kurang dari -128 atau lebih dari 127; format "c" hanya untuk
pengkodean karakter sistem operasi asli (ASCII, EBCDIC, dan sebagainya) dan bukan untuk
Karakter Unicode, jadi Perl berperilaku seolah-olah yang Anda maksud
paket("c", $x & 255);
Jika Anda benar-benar ingin mengemas titik kode Unicode, gunakan format "U".
Karakter dalam format '%c' dibungkus dengan unpack
(W membongkar) Anda mencoba sesuatu seperti
membongkar("H", "\x{2a1}")
di mana format mengharapkan untuk memproses satu byte (karakter dengan nilai di bawah 256), tetapi a
nilai yang lebih tinggi diberikan sebagai gantinya. Perl menggunakan nilai modulus 256 sebagai gantinya, seolah-olah Anda
telah menyediakan:
membongkar("H", "\x{a1}")
Karakter dalam format 'W' dibungkus dalam paket
(Paket W) Katamu
paket("U0W", $x)
di mana $x kurang dari 0 atau lebih dari 255. Namun, mode "U0" mengharapkan semua
nilai jatuh dalam interval [0, 255], jadi Perl berperilaku seolah-olah yang Anda maksud:
paket("U0W", $x & 255)
Karakter dalam format '%c' dibungkus dalam paket
(Paket W) Anda mencoba sesuatu seperti
paket("u", "\x{1f3}b")
di mana format mengharapkan untuk memproses urutan byte (karakter dengan nilai di bawah
256), tetapi beberapa karakter memiliki nilai yang lebih tinggi. Perl menggunakan nilai karakter
modulus 256 sebagai gantinya, seolah-olah Anda telah memberikan:
paket("u", "\x{f3}b")
Karakter dalam format '%c' dibungkus dengan unpack
(W membongkar) Anda mencoba sesuatu seperti
membongkar("s", "\x{1f3}b")
di mana format mengharapkan untuk memproses urutan byte (karakter dengan nilai di bawah
256), tetapi beberapa karakter memiliki nilai yang lebih tinggi. Perl menggunakan nilai karakter
modulus 256 sebagai gantinya, seolah-olah Anda telah memberikan:
membongkar("s", "\x{f3}b")
charname alias definisi tidak boleh berisi urutan beberapa spasi
(F) Anda mendefinisikan nama karakter yang memiliki beberapa karakter spasi dalam satu baris. Mengubah
mereka ke ruang tunggal. Biasanya nama-nama ini didefinisikan dalam impor ":alias"
argumen untuk "menggunakan charnames", tetapi mereka dapat didefinisikan oleh penerjemah yang diinstal ke
$^H{nama karakter}. Lihat "ALIAS KUSTOM" di charnames.
charnames alias definisi tidak boleh berisi spasi putih
(F) Anda mendefinisikan nama karakter yang diakhiri dengan karakter spasi. Hapus
spasi tambahan. Biasanya nama-nama ini didefinisikan dalam argumen impor ":alias" ke
"gunakan charnames", tetapi mereka dapat didefinisikan oleh penerjemah yang diinstal ke
$^H{nama karakter}. Lihat "ALIAS KUSTOM" di charnames.
\C tidak digunakan lagi di regex; ditandai dengan <-- DI SINI dalam m/%s/
(D usang, regexp) Kelas karakter \C tidak digunakan lagi, dan akan menjadi
kesalahan waktu kompilasi dalam rilis Perl di masa mendatang (sementara v5.24). Konstruksi ini
memungkinkan Anda untuk mencocokkan satu byte dari apa yang membentuk karakter UTF8 multi-byte tunggal,
dan merusak enkapsulasi. Saat ini juga sangat buggy. Jika Anda benar-benar perlu
memproses byte individual, Anda mungkin ingin mengonversi string Anda menjadi satu di mana
setiap byte yang mendasari disimpan sebagai karakter, dengan utf8::enkode().
"\c%c" lebih jelas ditulis hanya sebagai "%s"
(Sintaks W) "\cX" konstruksi dimaksudkan untuk menjadi cara untuk menentukan yang tidak dapat dicetak
karakter. Anda menggunakannya untuk yang dapat dicetak, yang lebih baik ditulis dengan sederhana
itu sendiri, mungkin didahului oleh garis miring terbalik untuk karakter non-kata. Melakukannya dengan caramu
did tidak portabel antara platform ASCII dan EBCDIC.
Konteks substitusi kloning tidak diterapkan
(F) Membuat utas baru di dalam operator "s///" tidak didukung.
tertutup() mencoba dirhandle yang tidak valid %s
(W io) Dirhandle yang Anda coba tutup tertutup atau tidak benar-benar dirhandle.
Periksa aliran kontrol Anda.
Menutup() pada filehandle yang belum dibuka %s
(W belum dibuka) Anda mencoba menutup pegangan file yang tidak pernah dibuka.
Prototipe penutupan disebut
(F) Jika suatu penutupan memiliki atribut, subrutin yang diteruskan ke pengendali atribut adalah
prototipe yang dikloning ketika penutupan baru dibuat. Subrutin ini tidak dapat
dipanggil.
Kode hilang setelah '/'
(F) Anda memiliki template (sub-) yang diakhiri dengan '/'. Pasti ada template lain
kode setelah garis miring. Lihat "paket" di perlfunc.
Titik kode 0x%X bukan Unicode, mungkin tidak portabel
(S non_unicode) Anda memiliki titik kode di atas maksimum Unicode U+10FFFF.
Perl memungkinkan string berisi superset poin kode Unicode, hingga batas
apa yang dapat disimpan dalam bilangan bulat yang tidak ditandatangani di sistem Anda, tetapi ini mungkin tidak diterima
oleh bahasa/sistem lain. Pada suatu waktu, legal dalam beberapa standar untuk memiliki kode
menunjuk hingga 0x7FFF_FFFF, tetapi tidak lebih tinggi. Poin kode di atas 0xFFFF_FFFF membutuhkan
lebih besar dari kata 32 bit.
%s: Perintah tidak ditemukan
(A) Anda tidak sengaja menjalankan skrip Anda csh atau shell lain, bukan Perl.
Periksalah #! baris, atau masukkan sendiri skrip Anda ke Perl. #! baris di
bagian atas file Anda bisa terlihat seperti
#!/usr/bin/Perl -w
Kompilasi gagal dalam persyaratan
(F) Perl tidak dapat mengkompilasi file yang ditentukan dalam pernyataan "memerlukan". Perl menggunakan ini
pesan umum ketika tidak ada kesalahan yang ditemuinya cukup parah untuk dihentikan
kompilasi segera.
Batas rekursi subekspresi reguler kompleks (%d) terlampaui
(W regexp) Mesin ekspresi reguler menggunakan rekursi dalam situasi kompleks di mana
pelacakan kembali diperlukan. Kedalaman rekursi terbatas pada 32766, atau mungkin kurang dalam
arsitektur di mana tumpukan tidak dapat tumbuh secara sewenang-wenang. ("Sederhana" dan "sedang"
situasi ditangani tanpa rekursi dan tidak tunduk pada batasan.) Coba
memperpendek tali yang sedang diperiksa; perulangan dalam kode Perl (misalnya dengan "sementara")
daripada di mesin ekspresi reguler; atau menulis ulang ekspresi reguler jadi
bahwa itu lebih sederhana atau lebih sedikit mundur. (Lihat perlfaq2 untuk informasi tentang Menguasai
Reguler Ekspresi.)
Menghubung() pada soket tertutup %s
(W tertutup) Anda mencoba melakukan koneksi pada soket tertutup. Apakah Anda lupa untuk memeriksa
kembalikan nilai Anda stopkontak () panggilan? Lihat "menghubungkan" di perlfunc.
Constant(%s): Panggilan ke &{$^H{%s}} tidak mengembalikan nilai yang ditentukan
(F) Subrutin terdaftar untuk menangani kelebihan beban konstan (lihat kelebihan beban) atau a
penangan charname khusus (lihat "PENERJEMAH KUSTOM" di charnames) mengembalikan yang tidak ditentukan
nilai.
Konstanta(%s): $^H{%s} tidak ditentukan
(F) Pengurai menemukan inkonsistensi saat mencoba mendefinisikan kelebihan beban
konstan. Mungkin Anda lupa memuat pragma kelebihan beban yang sesuai?
Konstanta bukan referensi %s
(F) Nilai konstan (mungkin dideklarasikan menggunakan pragma "gunakan konstanta") sedang
dereferenced, tetapi jumlah jenis referensi yang salah. Pesan tersebut menunjukkan
jenis referensi yang diharapkan. Ini biasanya menunjukkan kesalahan sintaks dalam
dereferensi nilai konstan. Lihat "Fungsi Konstan" di perlsub dan konstanta.
Konstanta dari variabel leksikal yang berpotensi dimodifikasi di tempat lain tidak digunakan lagi
(D usang) Anda menulis sesuatu seperti
$var saya;
$sub = sub() { $var };
tetapi $var direferensikan di tempat lain dan dapat dimodifikasi setelah ekspresi "sub" adalah
dievaluasi. Entah itu dimodifikasi secara eksplisit di tempat lain ("$var = 3") atau diteruskan ke
subrutin atau ke operator seperti "printf" atau "peta", yang mungkin atau mungkin tidak mengubah
variabel.
Secara tradisional, Perl telah menangkap nilai variabel pada saat itu dan berbalik
subrutin menjadi konstanta yang memenuhi syarat untuk inlining. Dalam kasus di mana
variabel dapat dimodifikasi di tempat lain, ini merusak perilaku penutupan, di mana
subrutin menangkap variabel itu sendiri, bukan nilainya, jadi masa depan berubah menjadi
variabel direfleksikan dalam nilai kembalian subrutin.
Penggunaan ini tidak digunakan lagi, karena perilakunya kemungkinan akan berubah di versi mendatang
dari Perl.
Jika Anda bermaksud agar subrutin memenuhi syarat untuk inlining, maka pastikan:
variabel tidak direferensikan di tempat lain, mungkin dengan menyalinnya:
$var2 saya = $var;
$sub = sub() { $var2 };
Jika Anda ingin subrutin ini menjadi penutupan yang mencerminkan perubahan di masa mendatang pada
variabel yang ditutupnya, tambahkan "pengembalian" eksplisit:
$var saya;
$sub = sub() { kembali $var };
Subrutin konstan %s didefinisikan ulang
(W redefine)(S) Anda mendefinisikan ulang subrutin yang sebelumnya memenuhi syarat untuk
sebaris. Lihat "Fungsi Konstan" di perlsub untuk komentar dan solusi.
Subrutin konstan %s tidak terdefinisi
(W misc) Anda membatalkan definisi subrutin yang sebelumnya memenuhi syarat untuk inlining.
Lihat "Fungsi Konstan" di perlsub untuk komentar dan solusi.
Konstanta(%s) tidak diketahui
(F) Pengurai menemukan inkonsistensi baik saat mencoba mendefinisikan kelebihan beban
konstan, atau ketika mencoba menemukan nama karakter yang ditentukan dalam escape "\N{...}".
Mungkin Anda lupa memuat pragma kelebihan beban yang sesuai?
:const bersifat eksperimental
(S eksperimental::const_attr) Atribut "const" bersifat eksperimental. Jika Anda menghendaki
gunakan fitur tersebut, nonaktifkan peringatan dengan "tidak ada peringatan 'eksperimental::const_attr'",
tetapi ketahuilah bahwa dengan melakukan itu, Anda mengambil risiko bahwa kode Anda dapat rusak di masa mendatang
versi Perl.
:const tidak diizinkan pada subrutin bernama
(F) Atribut "const" menyebabkan subrutin anonim dijalankan dan nilainya
ditangkap pada saat dikloning. Subrutin bernama tidak dikloning seperti ini,
sehingga atribut tidak masuk akal pada mereka.
Metode salin tidak mengembalikan referensi
(F) Metode yang membebani "=" adalah buggy. Lihat "Salin Konstruktor" dalam kelebihan.
&CORE::%s tidak dapat dipanggil secara langsung
(F) Anda mencoba memanggil subrutin di ruang nama "CORE::" dengan sintaks &foo atau
melalui referensi. Beberapa subrutin dalam paket ini belum dapat dipanggil seperti itu,
tetapi harus disebut sebagai barewords. Sesuatu seperti ini akan bekerja:
MULAI { *dorong = \&CORE::push; }
dorong @array, 1,2,3; # mendorong ke @array
INTI::%s bukan kata kunci
(F) CORE:: namespace dicadangkan untuk kata kunci Perl.
Opcode regexp rusak %d > %d
(P) Ini adalah kesalahan di Perl, atau, jika Anda menggunakannya, kebiasaan Anda
mesin ekspresi. Jika bukan yang terakhir, laporkan masalahnya melalui utilitas perlbug.
pointer regexp rusak
(P) Mesin ekspresi reguler menjadi bingung dengan apa yang dikompilasi ekspresi reguler
berikan itu.
program regexp rusak
(P) Mesin ekspresi reguler melewati program regexp tanpa sihir yang valid
nomor.
Malloc ptr rusak 0x%x pada 0x%x
(P) Paket malloc yang disertakan dengan Perl mengalami kegagalan internal.
Hitung setelah panjang/kode di unpack
(F) Anda memiliki template unpack yang menunjukkan string panjang yang dihitung, tetapi Anda juga memiliki
menentukan ukuran eksplisit untuk string. Lihat "paket" di perlfunc.
Rekursi mendalam pada subrutin anonim
Rekursi dalam pada subrutin "%s"
(W rekursi) Subrutin ini telah memanggil dirinya sendiri (langsung atau tidak langsung) 100 kali
lebih dari itu telah kembali. Ini mungkin menunjukkan rekursi tak terbatas, kecuali
Anda sedang menulis program benchmark yang aneh, dalam hal ini menunjukkan sesuatu yang lain.
Ambang batas ini dapat diubah dari 100, dengan mengkompilasi ulang perl biner, mengatur C
makro pra-prosesor "PERL_SUB_DEPTH_WARN" ke nilai yang diinginkan.
(?(DEFINE)....) tidak mengizinkan cabang di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menggunakan sesuatu seperti "(?(DEFINE)...|..)" yang ilegal. Kemungkinan besar
penyebab kesalahan ini adalah Anda meninggalkan tanda kurung di dalam bagian "....".
<-- HERE menunjukkan keberadaan dalam ekspresi reguler masalah ditemukan.
%s tidak mendefinisikan paket maupun VERSI--pemeriksaan versi gagal
(F) Anda mengatakan sesuatu seperti "gunakan Modul 42" tetapi dalam file Modul tidak ada keduanya
deklarasi paket atau $VERSION.
argumen hapus adalah irisan array indeks/nilai, gunakan irisan array
(F) Anda menggunakan sintaks irisan array indeks/nilai (%array[...]) sebagai argumen untuk "menghapus".
Anda mungkin bermaksud @array[...] dengan simbol @ sebagai gantinya.
hapus argumen adalah irisan hash kunci/nilai, gunakan irisan hash
(F) Anda menggunakan sintaks irisan hash kunci/nilai (%hash{...}) sebagai argumen untuk "menghapus".
Anda mungkin bermaksud @hash{...} dengan simbol @ sebagai gantinya.
hapus argumen bukan elemen atau irisan HASH atau ARRAY
(F) Argumen untuk "menghapus" harus berupa elemen hash atau array, seperti:
$fo{$bar}
$ref->{"susie"}[12]
atau irisan hash atau array, seperti:
@foo[$bar, $baz, $xyzzy]
@{$ref->[12]}{"susie", "antrian"}
Pembatas untuk dokumen di sini terlalu panjang
(F) Dalam konstruksi dokumen di sini seperti "<
menangani. Anda harus benar-benar dipelintir untuk menulis kode yang memicu kesalahan ini.
Penggunaan yang tidak digunakan lagi Ku() dalam kondisi palsu
(D usang) Anda menggunakan deklarasi yang mirip dengan "$x saya jika 0". Sudah lama-
bug berdiri di Perl yang menyebabkan variabel leksikal tidak dihapus saat keluar lingkup
ketika deklarasinya termasuk kondisional palsu. Beberapa orang telah mengeksploitasi ini
bug untuk mencapai semacam variabel statis. Karena kami bermaksud untuk memperbaiki bug ini, kami tidak
ingin orang-orang mengandalkan perilaku ini. Anda dapat mencapai efek statis serupa dengan
mendeklarasikan variabel dalam blok terpisah di luar fungsi, misalnya
sub f { $x saya jika 0; kembalikan $x++ }
menjadi
{ $x saya; sub f { kembalikan $x++ } }
Dimulai dengan Perl 5.10.0, Anda juga dapat menggunakan variabel "status" untuk memiliki leksikal yang
diinisialisasi hanya sekali (lihat fitur):
sub f { menyatakan $x; kembalikan $x++ }
HANCURKAN membuat referensi baru untuk objek mati '%s'
(F)A MENGHANCURKAN() metode membuat referensi baru ke objek yang baru saja
Hancur. Perl bingung, dan lebih memilih untuk menggugurkan daripada membuat menjuntai
referensi.
Tidak menghasilkan tajuk yang valid
Lihat Kesalahan server.
%s tidak mengembalikan nilai sebenarnya
(F) File yang diperlukan (atau digunakan) harus mengembalikan nilai sebenarnya untuk menunjukkan bahwa itu dikompilasi
dengan benar dan menjalankan kode inisialisasi dengan benar. Mengakhiri seperti itu sudah menjadi tradisi
file dengan "1;", meskipun nilai sebenarnya apa pun akan dilakukan. Lihat "memerlukan" di perlfunc.
(Apakah maksud Anda &%s bukan?)
(W misc) Anda mungkin menyebut subrutin &FOO yang diimpor sebagai $FOO atau semacamnya.
(Apakah maksud Anda "lokal" dan bukan "kami"?)
(W misc) Ingat bahwa "kami" tidak melokalisasi variabel global yang dideklarasikan. Kamu punya
menyatakannya lagi dalam lingkup leksikal yang sama, yang tampaknya berlebihan.
(Apakah maksud Anda $ atau @ alih-alih %?)
(W) Anda mungkin mengatakan %hash{$key} ketika yang Anda maksud adalah $hash{$key} atau @hash{@keys}. pada
sisi lain, mungkin Anda hanya bermaksud %hash dan terbawa suasana.
meninggal
(F) Anda lulus mati () string kosong (setara dengan "die """) atau Anda menyebutnya
tanpa argumen dan $@ kosong.
Dokumen tidak berisi data
Lihat Kesalahan server.
%s tidak mendefinisikan %s::VERSION--pemeriksaan versi gagal
(F) Anda mengatakan sesuatu seperti "gunakan Modul 42" tetapi Modul tidak mendefinisikan $VERSION.
'/' tidak mengambil hitungan berulang
(F) Anda tidak dapat memasukkan hitungan berulang dalam bentuk apa pun tepat setelah kode '/'. Lihat "paket" di
perfunc.
Tidak tahu cara mendapatkan nama file
(P) "PerlIO_getname", fungsi I/O internal perl khusus untuk VMS, entah bagaimana disebut
di platform lain. Ini tidak boleh terjadi.
Tidak tahu bagaimana menangani sihir tipe \%o
(P) Penanganan internal variabel magis telah dikutuk.
do_study: kehabisan memori
(P) Ini seharusnya ditangkap oleh safemaloc() sebagai gantinya.
(Apakah Anda perlu mendeklarasikan sebelumnya %s?)
(Sintaks S) Ini adalah tebakan yang dibuat sehubungan dengan pesan "%s ditemukan
di mana operator diharapkan". Ini sering berarti nama subrutin atau modul sedang
referensi yang belum dideklarasikan. Ini mungkin karena masalah pemesanan di
file Anda, atau karena pernyataan "sub", "package", "require", atau "use" yang hilang.
Jika Anda mereferensikan sesuatu yang belum ditentukan, Anda sebenarnya tidak perlu melakukannya
mendefinisikan subrutin atau paket sebelum lokasi saat ini. Anda dapat menggunakan yang kosong
"sub foo;" atau "paket FOO;" untuk memasukkan deklarasi "maju".
membuang() lebih baik ditulis sebagai INTI::buang()
(W misc) Anda menggunakan fungsi bawaan "dump()" yang sudah usang, tanpa memenuhi syarat sepenuhnya
sebagai "CORE::dump()". Mungkin itu salah ketik. Lihat "buang" di perlfunc.
dump tidak didukung
(F) Mesin Anda tidak mendukung dump/undump.
Duplikat Gratis() diabaikan
(S malloc) Rutinitas internal yang disebut Gratis() pada sesuatu yang sudah dibebaskan.
Pengubah duplikat '%c' setelah '%c' di %s
(W unpack) Anda telah menerapkan pengubah yang sama lebih dari sekali setelah mengetik dalam satu paket
templat. Lihat "paket" di perlfunc.
masing-masing referensi adalah eksperimental
(S eksperimental::autoderef) "setiap" dengan argumen skalar adalah eksperimental dan mungkin
mengubah atau dihapus dalam versi Perl mendatang. Jika Anda ingin mengambil risiko menggunakan
fitur ini, cukup nonaktifkan peringatan ini:
tidak ada peringatan "eksperimental::autoderef";
elseif harus elsif
(Sintaks S) Tidak ada kata kunci "elseif" di Perl karena menurut Larry itu jelek. Milikmu
kode akan ditafsirkan sebagai upaya untuk memanggil metode bernama "elseif" untuk kelas
dikembalikan oleh blok berikut. Ini tidak mungkin seperti yang Anda inginkan.
Kosongkan \%c{} dalam ekspresi reguler; ditandai dengan <-- DI SINI dalam m/%s/
(F) "\p" dan "\P" digunakan untuk memperkenalkan properti Unicode bernama, seperti yang dijelaskan dalam
perlunicode dan perlre. Anda menggunakan "\p" atau "\P" dalam ekspresi reguler tanpa
menentukan nama properti.
memasukkan %s efektif gagal
(F) Sementara di bawah pragma "gunakan filetest", mengganti uid yang nyata dan efektif atau
gid gagal.
%ENV adalah alias untuk %s
(F) Anda menjalankan mode noda, dan variabel %ENV telah di-alias ke yang lain
hash, sehingga tidak mencerminkan lagi keadaan lingkungan program. Ini
berpotensi tidak aman.
Kesalahan mengonversi spesifikasi file %s
(F) Sebuah kesalahan khusus untuk VMS. Karena Perl mungkin harus berurusan dengan spesifikasi file
baik dalam sintaks VMS atau Unix, ia mengubahnya menjadi satu bentuk ketika harus beroperasi
pada mereka secara langsung. Entah Anda telah memberikan spesifikasi file yang tidak valid ke Perl, atau
Anda telah menemukan kasus yang tidak ditangani oleh rutinitas konversi. Drat.
Eval-grup dalam ekspresi reguler tidak aman
(F) Perl mendeteksi data tercemar ketika mencoba mengkompilasi ekspresi reguler yang
berisi pernyataan lebar-nol "(?{ ...})", yang tidak aman. Lihat "(?{ kode })" di
perlre, dan perlsec.
Eval-group tidak diperbolehkan saat runtime, gunakan re 'eval' di regex m/%s/
(F) Perl mencoba mengkompilasi ekspresi reguler yang berisi "(?{ ... })" zero-width
pernyataan saat dijalankan, seperti ketika pola berisi nilai yang diinterpolasi.
Karena itu adalah risiko keamanan, itu tidak diperbolehkan. Jika Anda bersikeras, Anda mungkin masih melakukannya
ini dengan menggunakan pragma "re 'eval'" atau dengan secara eksplisit membangun pola dari
string yang diinterpolasi pada saat run time dan menggunakannya dalam an eval (). Lihat "(?{ kode })" di
perlre
Eval-group tidak diperbolehkan, gunakan re 'eval' di regex m/%s/
(F) Ekspresi reguler berisi pernyataan lebar-nol "(?{ ...})", tetapi itu
konstruksi hanya diperbolehkan ketika pragma "gunakan re 'eval'" berlaku. Lihat "(?{ kode
})" dalam perlre.
EVAL tanpa perubahan pos melebihi batas dalam regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menggunakan pola yang membuat terlalu banyak panggilan EVAL tanpa menggunakan teks apa pun.
Restrukturisasi pola sehingga teks dikonsumsi.
<-- HERE menunjukkan keberadaan dalam ekspresi reguler masalah ditemukan.
Operator <> yang terlalu panjang
(F) Isi operator <> tidak boleh melebihi ukuran maksimum Perl
pengenal. Jika Anda hanya mencoba memasukkan daftar panjang nama file, coba gunakan
gumpal() operator, atau masukkan nama file ke dalam variabel dan glob itu.
eksekutif? Saya bukan *itu* jenis sistem operasi
(F) Fungsi "exec" tidak diimplementasikan pada beberapa sistem, misalnya Symbian OS. Melihat
laporan kinerja.
Eksekusi %s dibatalkan karena kesalahan kompilasi.
(F) Pesan ringkasan terakhir ketika kompilasi Perl gagal.
ada argumen bukan elemen HASH atau ARRAY atau subrutin
(F) Argumen untuk "ada" harus berupa elemen hash atau array atau subrutin dengan
ampersand, seperti:
$fo{$bar}
$ref->{"susie"}[12]
&lakukan sesuatu
ada argumen bukan nama subrutin
(F) Argumen untuk "ada" untuk "ada &sub" harus berupa nama subrutin, dan bukan nama
panggilan subrutin. "ada & sub()" akan menghasilkan kesalahan ini.
Keluar dari evaluasi melalui %s
(W exiting) Anda keluar dari eval dengan cara yang tidak biasa, seperti goto, atau loop
pernyataan kontrol.
Keluar dari format melalui %s
(W exiting) Anda keluar dari format dengan cara yang tidak biasa, seperti goto, atau a
pernyataan kontrol loop.
Keluar dari pseudo-block melalui %s
(W exiting) Anda keluar dari konstruksi blok yang agak khusus (seperti blok sortir atau
subrutin) dengan cara yang tidak konvensional, seperti goto, atau pernyataan kontrol loop. Melihat
"urutkan" dalam perlfunc.
Keluar dari subrutin melalui %s
(W exiting) Anda keluar dari subrutin dengan cara yang tidak biasa, seperti goto, atau
pernyataan kontrol loop.
Keluar dari substitusi melalui %s
(W exiting) Anda keluar dari substitusi dengan cara yang tidak konvensional, seperti pengembalian,
goto, atau pernyataan kontrol loop.
Mengharapkan kurung tutup di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menulis sesuatu seperti
(?13
untuk menunjukkan grup penangkap dari bentuk "(?PARNO)", tetapi menghilangkan ")".
Mengharapkan '(?flags:(?[...' di regex; ditandai dengan <-- HERE di m/%s/
(F) Konstruksi ekspresi reguler kelas karakter diperpanjang "(?[...])" hanya mengizinkan
kelas karakter (termasuk kelas karakter yang lolos seperti "\d"), operator, dan
tanda kurung. Satu-satunya pengecualian adalah "(?flags:...)" yang mengandung setidaknya satu flag dan
tepat satu konstruksi "(?[...])". Ini memungkinkan ekspresi reguler yang berisi just
"(?[...])" untuk diinterpolasi. Jika Anda melihat pesan kesalahan ini, maka Anda mungkin memiliki
beberapa konstruksi "(?...)" lainnya di dalam kelas karakter Anda. Lihat "Bracketed Diperpanjang
Kelas Karakter" di perlrecharclass.
Aliasing eksperimental melalui referensi tidak diaktifkan
(F) Untuk melakukan aliasing melalui referensi, Anda harus terlebih dahulu mengaktifkan fitur:
tidak ada peringatan "eksperimental::refaliasing";
gunakan fitur "refaliasing";
\$x = \$y;
Tanda tangan subrutin eksperimental tidak diaktifkan
(F) Untuk menggunakan tanda tangan subrutin, Anda harus mengaktifkannya terlebih dahulu:
tidak ada peringatan "eksperimental::tanda tangan";
gunakan fitur "tanda tangan";
sub foo ($kiri, $kanan) { ... }
Langganan "%s" eksperimental tidak diaktifkan
(F) Untuk menggunakan sub leksikal, Anda harus mengaktifkannya terlebih dahulu:
tidak ada peringatan 'experimental::lexical_subs';
gunakan fitur 'lexical_subs';
subfoo saya { ... }
Berkat eksplisit ke '' (dengan asumsi paket utama)
(W misc) Anda memberkati referensi ke string panjang nol. Ini memiliki efek
berkat referensi ke dalam paket utama. Ini biasanya bukan yang Anda inginkan.
Pertimbangkan untuk menyediakan paket target default, misalnya bless($ref, $p || 'MyPackage');
%s: Sintaks ekspresi
(A) Anda tidak sengaja menjalankan skrip Anda csh bukannya Perl. Periksalah #!
baris, atau masukkan sendiri skrip Anda ke Perl secara manual.
%s gagal--antrian panggilan dibatalkan
(F) Pengecualian untrapped muncul saat menjalankan UNITCHECK, CHECK, INIT, atau END
subrutin. Pemrosesan sisa antrian rutinitas tersebut telah
prematur berakhir.
False [] rentang "%s" di regex; ditandai dengan <-- DI SINI dalam m/%s/
(W regexp)(F) Rentang kelas karakter harus dimulai dan diakhiri dengan karakter literal, bukan
kelas karakter lain seperti "\d" atau "[:alpha:]". "-" dalam rentang salah Anda adalah
ditafsirkan sebagai "-". Dalam konstruksi "(?[...])", ini adalah kesalahan, bukan
daripada peringatan. Pertimbangkan untuk mengutip "-", "\-". <-- SINI menunjukkan keberadaan di
ekspresi reguler masalah ditemukan. Lihat perlre.
Kesalahan VMS fatal (status=%d) pada %s, baris %d
(P) Sebuah kesalahan khusus untuk VMS. Sesuatu yang tidak diinginkan terjadi dalam layanan sistem VMS atau
RTL rutin; Status keluar Perl harus memberikan rincian lebih lanjut. Nama file dalam "di %s"
dan nomor baris di "baris %d" memberi tahu Anda bagian mana dari kode sumber Perl
tertekan.
fcntl tidak diimplementasikan
(F) Mesin Anda tampaknya tidak berfungsi fcntl(). Apa ini, PDP-11 atau
sesuatu?
FETCHSIZE mengembalikan nilai negatif
(F) Array terikat diklaim memiliki jumlah elemen negatif, yang tidak mungkin.
Bidang terlalu lebar dalam format 'u' dalam paket
(Paket W) Setiap baris dalam string yang dikodekan dimulai dengan indikator panjang yang tidak dapat
menyandikan nilai di atas 63. Jadi tidak ada gunanya meminta panjang garis lebih besar dari
itu. Perl akan berperilaku seolah-olah Anda menetapkan "u63" sebagai formatnya.
Filehandle %s dibuka hanya untuk input
(W io) Anda mencoba menulis di filehandle read-only. Jika Anda bermaksud untuk membaca-
tulis filehandle, Anda harus membukanya dengan "+<" atau "+>" atau "+>>" alih-alih dengan "<"
atau tidak sama sekali. Jika Anda hanya ingin menulis file, gunakan ">" atau ">>". Lihat "buka" di
perfunc.
Filehandle %s dibuka hanya untuk keluaran
(W io) Anda mencoba membaca dari pegangan file yang dibuka hanya untuk menulis, Jika Anda menginginkannya
untuk menjadi filehandle baca/tulis, Anda harus membukanya dengan "+<" atau "+>" atau "+>>"
bukannya dengan ">". Jika Anda hanya ingin membaca dari file, gunakan "<". Lihat "buka"
di perlfunc. Kemungkinan lain adalah Anda mencoba membuka filedescriptor 0 (juga
dikenal sebagai STDIN) untuk keluaran (mungkin Anda menutup STDIN sebelumnya?).
Filehandle %s dibuka kembali sebagai %s hanya untuk input
(W io) Anda membuka untuk membaca filehandle yang mendapatkan id filehandle yang sama dengan STDOUT
atau STDERR. Ini terjadi karena Anda menutup STDOUT atau STDERR sebelumnya.
Filehandle STDIN dibuka kembali sebagai %s hanya untuk keluaran
(W io) Anda membuka untuk menulis filehandle yang mendapatkan id filehandle yang sama dengan STDIN.
Ini terjadi karena Anda menutup STDIN sebelumnya.
$ akhir harus \$ atau $nama
(F) Anda sekarang harus memutuskan apakah $ akhir dalam sebuah string dimaksudkan sebagai literal
tanda dolar, atau dimaksudkan untuk memperkenalkan nama variabel yang kebetulan hilang. Jadi
Anda harus meletakkan garis miring terbalik atau nama.
kawanan() pada filehandle tertutup %s
(W ditutup) Pegangan file yang Anda coba kawanan() ditutup beberapa waktu
sebelum sekarang. Periksa aliran kontrol Anda. kawanan() beroperasi pada filehandle. Apakah kamu
mencoba menelepon kawanan() di dirhandle dengan nama yang sama?
Format tidak diakhiri
(F) Suatu format harus diakhiri dengan garis dengan titik tunggal. Perl sampai di akhir
file Anda tanpa menemukan garis seperti itu.
Format %s didefinisikan ulang
(W mendefinisikan ulang) Anda mendefinisikan ulang format. Untuk menekan peringatan ini, katakan
{
tidak ada peringatan 'mendefinisikan ulang';
eval "format NAMA =...";
}
Ditemukan = dalam kondisi, harus ==
(Sintaks W) Anda bilang
jika ($foo = 123)
kapan maksudmu
jika ($foo == 123)
(atau semacam itu).
%s ditemukan di tempat yang diharapkan operator
(Sintaks S) Perl lexer tahu apakah akan mengharapkan istilah atau operator. Jika melihat
apa yang diketahui sebagai istilah ketika mengharapkan untuk melihat operator, itu memberi Anda ini
peringatan. Biasanya ini menunjukkan bahwa operator atau pembatas dihilangkan, seperti
titik koma.
toko gdbm dikembalikan %d, errno %d, kunci "%s"
(S) Peringatan dari ekstensi GDBM_File bahwa toko gagal.
gethostent tidak diimplementasikan
(F) Pustaka C Anda tampaknya tidak mengimplementasikan gethosten(), mungkin karena jika itu
lakukan, itu akan merasa berkewajiban secara moral untuk mengembalikan setiap nama host di Internet.
Dapatkan%nama S() pada soket tertutup %s
(W tertutup) Anda mencoba untuk mendapatkan soket atau nama soket rekan pada soket tertutup. Apakah kamu
lupa untuk memeriksa nilai pengembalian Anda stopkontak () panggilan?
getpwnam mengembalikan UIC %#o yang tidak valid untuk pengguna "%s"
(S) Peringatan khusus untuk VMS. Panggilan ke "sys$getuai" yang mendasari "getpwnam"
operator mengembalikan UIC yang tidak valid.
getockopt() pada soket tertutup %s
(W tertutup) Anda mencoba mendapatkan opsi soket pada soket tertutup. Apakah kamu lupa?
periksa nilai pengembalian Anda stopkontak () panggilan? Lihat "getsockopt" di perlfunc.
diberikan bersifat eksperimental
(S eksperimental::smartmatch) "diberikan" tergantung pada smartmatch, yang eksperimental, jadi
perilakunya dapat berubah atau bahkan dihapus dalam rilis Perl di masa mendatang. Lihat
penjelasan di bawah "Rincian Eksperimental tentang yang diberikan dan kapan" di perlsyn.
Simbol global "%s" memerlukan nama paket yang eksplisit (apakah Anda lupa menyatakan "%s saya"?)
(F) Anda telah mengatakan "gunakan ketat" atau "gunakan var ketat", yang menunjukkan bahwa semua variabel
harus dicakup secara leksikal (menggunakan "saya" atau "negara"), dideklarasikan sebelumnya menggunakan
"kami", atau secara eksplisit memenuhi syarat untuk mengatakan di paket mana variabel global berada (menggunakan
"::").
glob gagal (%s)
(S glob) Ada yang tidak beres dengan program eksternal yang digunakan untuk "glob" dan
"<*.c>". Biasanya, ini berarti Anda memberikan pola "glob" yang menyebabkan
program eksternal gagal dan keluar dengan status bukan nol. Jika pesan menunjukkan
bahwa keluar abnormal menghasilkan coredump, ini juga dapat berarti bahwa csh Anda (C
cangkang) rusak. Jika demikian, Anda harus mengubah semua variabel terkait csh di
config.sh: Jika Anda memiliki tcsh, buat variabel merujuknya seolah-olah itu csh (mis
"full_csh='/usr/bin/tcsh'"); jika tidak, kosongkan semuanya (kecuali "d_csh"
harus 'undef') sehingga Perl akan berpikir csh hilang. Dalam kedua kasus, setelah
mengedit config.sh, jalankan "./Configure -S" dan bangun kembali Perl.
Glob tidak dihentikan
(F) Lexer melihat tanda kurung siku kiri di tempat yang diharapkannya, jadi
itu mencari braket sudut kanan yang sesuai, dan tidak menemukannya. Peluang
apakah Anda meninggalkan beberapa tanda kurung yang diperlukan di awal baris, dan Anda benar-benar bermaksud
"kurang dari".
gmtime(%f) gagal
(W overflow) Anda memanggil "gmtime" dengan nomor yang tidak dapat ditangani: terlalu besar,
terlalu kecil, atau NaN. Nilai yang dikembalikan adalah "undef".
gmtime(%f) terlalu besar
(W overflow) Anda memanggil "gmtime" dengan nomor yang lebih besar dari yang bisa diandalkan
handle dan "gmtime" mungkin mengembalikan tanggal yang salah. Peringatan ini juga dipicu
dengan NaN (nilai bukan angka khusus).
gmtime(%f) terlalu kecil
(W overflow) Anda memanggil "gmtime" dengan nomor yang lebih kecil dari yang bisa diandalkan
handle dan "gmtime" mungkin mengembalikan tanggal yang salah.
Mendapat kesalahan dari DosAllocMem
(P) Kesalahan khusus untuk OS/2. Kemungkinan besar Anda menggunakan versi usang dari
Perl, dan ini seharusnya tidak terjadi.
harus punya label
(F) Berbeda dengan "berikutnya" atau "terakhir", Anda tidak diizinkan untuk pergi ke yang tidak ditentukan
tujuan. Lihat "goto" di perlfunc.
Pergi ke subrutin yang tidak ditentukan%s
(F) Anda mencoba memanggil subrutin dengan sintaks "goto &sub", tetapi yang ditunjukkan
subrutin belum didefinisikan, atau jika sudah, sejak itu tidak ditentukan.
Nama grup harus dimulai dengan karakter kata non-digit dalam ekspresi reguler; ditandai dengan <-- DI SINI di
MS/
(F) Nama grup harus mengikuti aturan untuk pengidentifikasi perl, artinya harus dimulai
dengan karakter kata non-digit. Penyebab umum kesalahan ini adalah menggunakan (?&0) sebagai gantinya
dari (?0). Lihat perlre.
()-grup dimulai dengan hitungan
(F) A ()-grup dimulai dengan hitungan. Hitungan seharusnya mengikuti sesuatu: a
karakter template atau ()-grup. Lihat "paket" di perlfunc.
%s memiliki kesalahan kompilasi.
(F) Pesan ringkasan terakhir ketika "perl -c" gagal.
Harus membuat %s secara tidak terduga
(S internal) Sebuah rutin meminta simbol dari tabel simbol yang seharusnya ada
sudah ada, tetapi untuk beberapa alasan tidak, dan harus dibuat dalam keadaan darurat
dasar untuk mencegah pembuangan inti.
%s memiliki terlalu banyak kesalahan
(F) Pengurai telah berhenti mencoba mengurai program setelah 10 kesalahan. Lebih jauh
pesan kesalahan kemungkinan besar tidak informatif.
Memiliki lebih dari satu /%c regexp modifier tidak digunakan lagi
(D usang, regexp) Anda menggunakan pengubah pola ekspresi reguler yang ditunjukkan di
setidaknya dua kali dalam serangkaian pengubah. Tidak digunakan lagi untuk melakukan ini dengan ini
pengubah tertentu, untuk memungkinkan ekstensi masa depan ke bahasa Perl.
Float heksadesimal: luapan eksponen
(W overflow) Titik apung heksadesimal memiliki eksponen yang lebih besar daripada titik apung
mendukung titik.
Float heksadesimal: aliran bawah eksponen
(W overflow) Titik apung heksadesimal memiliki eksponen yang lebih kecil daripada titik apung
mendukung titik.
Float heksadesimal: kesalahan internal (%s)
(F) Sesuatu menjadi sangat buruk dalam penanganan float heksadesimal.
Float heksadesimal: mantissa overflow
(W overflow) Literal floating point heksadesimal memiliki lebih banyak bit di mantissa (the
bagian antara 0x dan eksponen, juga dikenal sebagai pecahan atau significand)
daripada dukungan floating point.
Float heksadesimal: kehilangan presisi
(W overflow) Titik apung heksadesimal memiliki lebih banyak digit secara internal daripada yang seharusnya
keluaran. Ini dapat disebabkan oleh format ganda panjang yang tidak didukung, atau oleh bilangan bulat 64-bit
tidak tersedia (diperlukan untuk mengambil angka di bawah beberapa konfigurasi).
Float heksadesimal: format ganda panjang yang tidak didukung
(F) Anda telah mengonfigurasi Perl untuk menggunakan double panjang tetapi internal dari double panjang
formatnya tidak diketahui; oleh karena itu output float heksadesimal tidak mungkin.
Angka heksadesimal > 0xffffffff non-portabel
(W portabel) Angka heksadesimal yang Anda tentukan lebih besar dari 2**32-1 (4294967295)
dan karena itu non-portabel antar sistem. Lihat perlport untuk lebih lanjut tentang portabilitas
keprihatinan.
Pengenal terlalu panjang
(F) Perl membatasi pengidentifikasi (nama untuk variabel, fungsi, dll.) hingga sekitar 250
karakter untuk nama sederhana, dan lebih untuk nama majemuk (seperti $A::B).
Anda telah melampaui batas Perl. Versi Perl yang akan datang kemungkinan akan menghilangkan ini
batasan yang sewenang-wenang.
Mengabaikan panjang nol \N{} di kelas karakter di regex; ditandai dengan <-- DI SINI dalam m/%s/
(W regexp) Karakter Unicode yang diberi nama lolos ("\N{...}") dapat mengembalikan panjang nol
urutan. Ketika pelarian seperti itu digunakan di kelas karakter, perilakunya tidak baik
didefinisikan. Periksa apakah escape yang benar telah digunakan, dan charname yang benar
penangan dalam ruang lingkup.
Angka biner ilegal %s
(F) Anda menggunakan angka selain 0 atau 1 dalam bilangan biner.
Digit biner ilegal %s diabaikan
(Digit W) Anda mungkin telah mencoba menggunakan angka selain 0 atau 1 dalam bilangan biner.
Interpretasi bilangan biner berhenti sebelum digit yang menyinggung.
Karakter ilegal setelah '_' dalam prototipe untuk %s : %s
(W illegalproto) Karakter ilegal ditemukan dalam deklarasi prototipe. '_'
dalam prototipe harus diikuti oleh ';', yang menunjukkan parameter lainnya adalah
opsional, atau salah satu dari '@' atau '%', karena keduanya akan menerima 0 final atau lebih
parameter.
Karakter ilegal \%o (carriage return)
(F) Perl biasanya memperlakukan carriage return dalam teks program seperti yang lainnya
spasi putih, yang berarti Anda tidak akan pernah melihat kesalahan ini saat Perl dibuat menggunakan
pilihan standar. Untuk beberapa alasan, versi Perl Anda tampaknya telah dibuat
tanpa dukungan ini. Bicaralah dengan administrator Perl Anda.
Karakter ilegal dalam prototipe untuk %s : %s
(W illegalproto) Karakter ilegal ditemukan dalam deklarasi prototipe. Hukum
karakter dalam prototipe adalah $, @, %, *, ;, [, ], &, \, dan +. Mungkin Anda
mencoba menulis tanda tangan subrutin tetapi tidak mengaktifkan fitur itu terlebih dahulu ("gunakan
fitur 'tanda tangan'"), jadi tanda tangan Anda malah ditafsirkan sebagai prototipe yang buruk.
Deklarasi ilegal dari subrutin anonim
(F) Saat menggunakan kata kunci "sub" untuk membuat subrutin anonim, Anda harus selalu
tentukan blok kode. Lihat perlsub.
Deklarasi ilegal dari subrutin %s
(F) Sebuah subrutin tidak dideklarasikan dengan benar. Lihat perlsub.
Pembagian ilegal dengan nol
(F) Anda mencoba membagi angka dengan 0. Entah ada sesuatu yang salah dalam logika Anda, atau
anda perlu memasukkan kondisi untuk menjaga input yang tidak berarti.
Digit heksadesimal ilegal %s diabaikan
(Digit W) Anda mungkin mencoba menggunakan karakter selain 0 - 9 atau A - F, a - f dalam a
bilangan heksadesimal. Interpretasi angka heksadesimal berhenti sebelum
karakter ilegal.
Modulus nol ilegal
(F) Anda mencoba membagi angka dengan 0 untuk mendapatkan sisanya. Sebagian besar nomor tidak mengambil
untuk ini dengan ramah.
Jumlah bit ilegal dalam vec
(F) Jumlah bit dalam vektor() (argumen ketiga) harus berupa pangkat dua dari 1 hingga
32 (atau 64, jika platform Anda mendukungnya).
Angka oktal ilegal %s
(F) Anda menggunakan angka 8 atau 9 dalam bilangan oktal.
Digit oktal ilegal %s diabaikan
(Digit W) Anda mungkin pernah mencoba menggunakan angka 8 atau 9 dalam bilangan oktal. Interpretasi dari
angka oktal berhenti sebelum 8 atau 9.
Pola ilegal di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menulis sesuatu seperti
(?+foo)
Tanda "+" hanya valid jika diikuti oleh angka, yang menunjukkan grup penangkap. Melihat
"(?PARNO)".
Suidscript ilegal
(F) Skrip yang dijalankan di bawah suidperl entah bagaimana ilegal.
Sakelar ilegal di PERL5OPT: -%c
(X) Variabel lingkungan PERL5OPT hanya dapat digunakan untuk mengatur sakelar berikut:
-[CDIMUdmtw].
Nilai lingkungan CRTL yang tidak terbentuk dengan benar "%s"
(W internal) Peringatan khusus untuk VMS. Perl mencoba membaca internal CRTL
environ array, dan menemukan elemen tanpa pembatas "=" yang digunakan untuk memisahkan
kunci dari nilai. Elemen diabaikan.
Pesan salah bentuk di prime_env_iter: |%s|
(W internal) Peringatan khusus untuk VMS. Perl mencoba membaca nama logis atau CLI
definisi simbol saat bersiap untuk mengulangi %ENV, dan tidak melihat yang diharapkan
pembatas antara kunci dan nilai, sehingga garis diabaikan.
(dalam pembersihan) %s
(W misc) Awalan ini biasanya menunjukkan bahwa a MENGHANCURKAN() metode mengangkat yang ditunjukkan
pengecualian. Karena destruktor biasanya dipanggil oleh sistem pada titik yang berubah-ubah
selama eksekusi, dan seringkali berkali-kali, peringatan dikeluarkan hanya sekali
untuk sejumlah kegagalan yang jika tidak akan menghasilkan pesan yang sama adalah
ulang.
Kegagalan panggilan balik pengguna yang dikirim menggunakan tanda "G_KEEPERR" juga dapat mengakibatkan
peringatan ini. Lihat "G_KEEPERR" di perlcall.
Ekspresi tidak lengkap dalam '(?[ ])' di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Ada kesalahan sintaks dalam "(?[ ])". Ini bisa terjadi jika ekspresi
di dalam konstruk benar-benar kosong, atau jika ada terlalu banyak atau sedikit operan
untuk jumlah operator. Perl tidak cukup pintar untuk memberi Anda yang lebih tepat
indikasi tentang apa yang salah.
Hirarki tidak konsisten selama penggabungan C3 kelas '%s': penggabungan gagal pada induk '%s'
(F) Urutan resolusi metode (MRO) dari kelas yang diberikan tidak konsisten dengan C3, dan Anda
telah mengaktifkan C3 MRO untuk kelas ini. Lihat dokumentasi C3 di mro untuk lebih lanjut
informasi.
Dalam EBCDIC komponen v-string tidak boleh melebihi 2147483647
(F) Kesalahan khusus untuk EBCDIC. Secara internal, v-string disimpan sebagai kode Unicode
poin, dan dikodekan dalam EBCDIC sebagai UTF-EBCDIC. Pengkodean UTF-EBCDIC terbatas pada:
poin kode tidak lebih besar dari 2147483647 (0x7FFFFFFF).
Rekursi tak terbatas dalam regex
(F) Anda menggunakan pola yang mereferensikan dirinya sendiri tanpa menggunakan teks input apa pun. Kamu
harus memeriksa pola untuk memastikan bahwa pola rekursif menggunakan teks atau
gagal.
Inisialisasi variabel status dalam konteks daftar saat ini dilarang
(F) Saat ini implementasi "status" hanya mengizinkan inisialisasi skalar
variabel dalam konteks skalar. Tulis ulang "status ($a) = 42" menjadi "status $a = 42" untuk diubah
dari daftar ke konteks skalar. Konstruksi seperti "negara (@a) = foo()" akan menjadi
didukung dalam rilis perl mendatang.
%%s[%s] dalam konteks skalar lebih baik ditulis sebagai $%s[%s]
(Sintaks W) Dalam konteks skalar, Anda telah menggunakan indeks array/irisan nilai (ditunjukkan dengan %)
untuk memilih satu elemen array. Umumnya lebih baik untuk meminta skalar
nilai (ditunjukkan dengan $). Perbedaannya adalah $foo[&bar] selalu berperilaku seperti a
skalar, baik dalam nilai yang dikembalikannya maupun saat mengevaluasi argumennya, while
%foo[&bar] menyediakan konteks daftar ke subskripnya, yang dapat melakukan hal-hal aneh jika
Anda hanya mengharapkan satu subskrip. Saat dipanggil dalam konteks daftar, itu juga mengembalikan
index (apa yang dikembalikan & bar) selain nilainya.
%%s{%s} dalam konteks skalar lebih baik ditulis sebagai $%s{%s}
(Sintaks W) Dalam konteks skalar, Anda telah menggunakan kunci hash/irisan nilai (ditunjukkan dengan %) untuk
pilih satu elemen hash. Umumnya lebih baik untuk meminta nilai skalar
(ditunjukkan dengan $). Perbedaannya adalah $foo{&bar} selalu berperilaku seperti skalar,
baik dalam nilai yang dikembalikannya maupun saat mengevaluasi argumennya, sementara @foo{&bar} dan
memberikan konteks daftar ke subskripnya, yang dapat melakukan hal-hal aneh jika Anda
mengharapkan hanya satu subscript. Saat dipanggil dalam konteks daftar, itu juga mengembalikan kunci di
penambahan nilai.
Ketergantungan tidak aman di %s
(F) Anda mencoba melakukan sesuatu yang tidak disukai oleh mekanisme pencemaran. Penodaan
mekanisme dihidupkan saat Anda menjalankan setuid atau setgid, atau saat Anda menentukan -T untuk
menyalakannya secara eksplisit. Mekanisme tainting melabeli semua data yang diturunkan secara langsung
atau tidak langsung dari pengguna, yang dianggap tidak layak untuk Anda percayai. Jika ada
data tersebut digunakan dalam operasi "berbahaya", Anda mendapatkan kesalahan ini. Lihat perlsec untuk
Informasi lebih lanjut
Direktori tidak aman di %s
(F) Anda tidak dapat menggunakan sistem(), exec (), atau buka pipa dalam skrip setuid atau setgid jika
$ENV{PATH} berisi direktori yang dapat ditulis oleh dunia. Juga, PATH harus
tidak mengandung direktori relatif. Lihat perlsec.
$ENV{%s} tidak aman saat menjalankan %s
(F) Anda tidak dapat menggunakan sistem(), exec (), atau buka pipa dalam skrip setuid atau setgid jika
salah satu dari $ENV{PATH}, $ENV{IFS}, $ENV{CDPATH}, $ENV{ENV}, $ENV{BASH_ENV} atau $ENV{TERM}
berasal dari data yang dipasok (atau berpotensi dipasok) oleh pengguna. Naskah harus
atur jalur ke nilai yang diketahui, menggunakan data yang dapat dipercaya. Lihat perlsec.
Properti buatan pengguna yang tidak aman %s
(F) Perl mendeteksi data tercemar ketika mencoba mengkompilasi ekspresi reguler yang
berisi panggilan ke fungsi properti karakter yang ditentukan pengguna, yaitu "\p{IsFoo}" atau
"\p{InFoo}". Lihat "Properti Karakter Buatan Pengguna" di perlunicode dan perlsec.
Integer overflow dalam format string untuk %s
(F) Indeks dan lebar yang ditentukan dalam format string "printf()" atau "sprintf()"
terlalu besar. Angka-angka tidak boleh melebihi ukuran bilangan bulat untuk Anda
Arsitektur.
Integer overflow dalam %s angka
(S overflow) Bilangan heksadesimal, oktal, atau biner yang telah Anda tentukan sebagai a
literal atau sebagai argumen untuk segi enam() or okt() terlalu besar untuk arsitektur Anda, dan memiliki
telah dikonversi ke angka floating point. Pada arsitektur 32-bit yang terbesar
bilangan heksadesimal, oktal atau biner yang dapat direpresentasikan tanpa overflow adalah 0xFFFFFFFF,
037777777777, atau masing-masing 0b11111111111111111111111111111111. Perhatikan bahwa Perl
secara transparan mempromosikan semua angka ke representasi floating point
internal - tunduk pada hilangnya kesalahan presisi dalam operasi berikutnya.
Integer overflow di srand
(S overflow) Nomor yang Anda berikan ke srand terlalu besar untuk muat di Anda
representasi integer arsitektur. Jumlahnya telah diganti dengan yang terbesar
integer didukung (0xFFFFFFFF pada arsitektur 32-bit). Ini berarti Anda mungkin mendapatkan
keacakan kurang dari yang Anda harapkan, karena biji acak yang berbeda di atas kehendak maksimum
mengembalikan urutan angka acak yang sama.
Integer overflow dalam versi
Integer overflow dalam versi %d
(W overflow) Beberapa bagian dari inisialisasi versi terlalu besar untuk ukuran
bilangan bulat untuk arsitektur Anda. Ini bukan peringatan karena tidak ada rasional
alasan untuk versi mencoba dan menggunakan elemen yang lebih besar dari biasanya 2**32. Ini
biasanya disebabkan oleh mencoba menggunakan beberapa operasi matematika aneh sebagai versi, seperti
100 / 9.
Bencana internal di regex; ditandai dengan <-- DI SINI dalam m/%s/
(P) Ada yang tidak beres di pengurai ekspresi reguler. <-- SINI menunjukkan
keberadaan dalam ekspresi reguler masalah ditemukan.
Inkonsistensi internal dalam melacak vforks
(S) Peringatan khusus untuk VMS. Perl melacak berapa kali Anda menelepon
"fork" dan "exec", untuk menentukan apakah panggilan saat ini ke "exec" akan memengaruhi
skrip saat ini atau subproses (lihat "exec LIST" di perlvms). Entah bagaimana, hitungan ini telah
diacak, jadi Perl menebak dan memperlakukan "exec" ini sebagai permintaan untuk
hentikan skrip Perl dan jalankan perintah yang ditentukan.
% dalam p mungkin bertentangan dengan ekstensi printf di masa mendatang
(S internal) Rutinitas internal Perl yang menangani format "printf" dan "sprintf"
mengikuti seperangkat aturan yang sedikit berbeda saat dipanggil dari kode C atau XS.
Secara khusus, format yang terdiri dari digit diikuti oleh "p" (misalnya, "%7p") dicadangkan
untuk penggunaan di masa depan. Jika Anda melihat pesan ini, maka modul XS mencoba memanggil rutin itu
dengan satu format khusus tersebut.
urp internal di regex; ditandai dengan <-- DI SINI dalam m/%s/
(P) Ada yang tidak beres di pengurai ekspresi reguler. <-- SINI menunjukkan
keberadaan dalam ekspresi reguler masalah ditemukan.
%s (...) ditafsirkan sebagai fungsi
(Sintaks W) Anda telah melanggar aturan yang mengatakan bahwa operator daftar mana pun diikuti oleh
tanda kurung berubah menjadi fungsi, dengan semua argumen operator daftar ditemukan di dalamnya
tanda kurung. Lihat "Syarat dan Daftar Operator (Kiri)" di perlop.
Dalam '(?...)', '(' dan '?' harus berdekatan di ekspresi reguler; ditandai dengan <-- HERE di m/%s/
(F) Deret dua karakter "(?" dalam konteks ini dalam pola ekspresi reguler
harus menjadi token yang tidak dapat dibagi, tanpa ada intervensi antara "(" dan "?",
tetapi Anda memisahkannya dengan spasi.
Atribut %s tidak valid: %s
(F) Atribut yang ditunjukkan untuk subrutin atau variabel tidak dikenali oleh Perl atau
oleh penangan yang disediakan pengguna. Lihat atribut.
Atribut %s tidak valid: %s
(F) Atribut yang ditunjukkan untuk subrutin atau variabel tidak dikenali oleh Perl
atau oleh penangan yang disediakan pengguna. Lihat atribut.
Karakter tidak valid dalam definisi alias nama panggilan; ditandai dengan <-- DI SINI di '%s
(F) Anda mencoba membuat alias khusus untuk nama karakter, dengan opsi ":alias"
untuk "menggunakan charnames" dan karakter yang ditentukan dalam nama yang ditunjukkan tidak valid. Melihat
"ALIAS KUSTOM" dalam nama panggilan.
\0 karakter tidak valid dalam %s untuk %s: %s\0%s
(W syscalls) Tertanam \0 karakter dalam nama path atau argumen panggilan sistem lainnya
menghasilkan peringatan pada 5.20. Bagian setelah \0 sebelumnya diabaikan oleh sistem
panggilan.
Karakter tidak valid di \N{...}; ditandai dengan <-- DI SINI di \N{%s}
(F) Hanya karakter tertentu yang valid untuk nama karakter. Yang ditunjukkan tidak.
Lihat "ALIAS KUSTOM" di charnames.
Konversi tidak valid dalam %s: "%s"
(W printf) Perl tidak memahami konversi format yang diberikan. Lihat "sprintf" di
perfunc.
Escape tidak valid dalam pengkodean yang ditentukan di regex; ditandai dengan <-- DI SINI dalam m/%s/
(W regexp)(F) Escape numerik (misalnya "\xHH") dari nilai < 256 tidak sesuai
ke satu karakter melalui konversi dari pengkodean yang ditentukan oleh
pragma pengkodean. Escape diganti dengan REPLACEMENT CHARACTER (U+FFFD) sebagai gantinya,
kecuali dalam "(?[ ])", di mana itu adalah kesalahan fatal. <-- SINI menunjukkan keberadaan
dalam ekspresi reguler, pelarian ditemukan.
Angka heksadesimal tidak valid di \N{U+...}
Nomor heksadesimal tidak valid di \N{U+...} di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Konstanta karakter yang diwakili oleh "..." bukan bilangan heksadesimal yang valid.
Entah itu kosong, atau Anda mencoba menggunakan karakter selain 0 - 9 atau A - F, a - f
dalam bilangan heksadesimal.
Nama modul %s tidak valid dengan opsi -%c: berisi satu ':'
(F) Argumen modul ke perl's -m dan -M opsi baris perintah tidak boleh berisi satu
titik dua pada nama modul, tetapi hanya pada argumen setelah "=". Dengan kata lain,
-MFoo::Bar=:baz tidak apa-apa, tapi -MFoo:Bar=baz tidak.
Nama mro tidak valid: '%s'
(F) Anda mencoba "mro::set_mro("classname", "foo")" atau "use mro 'foo'", di mana "foo" adalah
bukan urutan resolusi metode (MRO) yang valid. Saat ini, satu-satunya yang valid yang didukung
adalah "dfs" dan "c3", kecuali Anda telah memuat modul yang merupakan plugin MRO. Lihat mro dan
perlmroapi.
Angka negatif tidak valid (%s) di chr
(W utf8) Anda memberikan angka negatif ke "chr". Angka negatif tidak valid
nomor karakter, sehingga mengembalikan karakter pengganti Unicode (U+FFFD).
opsi tidak valid -D%c, gunakan -D'' untuk melihat pilihan
(S debugging) Perl dipanggil dengan flag debugger yang tidak valid. Hubungi perl dengan -D
opsi tanpa tanda untuk melihat daftar nilai yang dapat diterima. Lihat juga "-Dletters" di
perlrun.
Kuantifier tidak valid di {,} di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Polanya terlihat seperti kuantifier {min,max}, tetapi min atau max tidak bisa
diuraikan sebagai nomor yang valid - baik itu memiliki nol di depan, atau itu mewakili terlalu besar
nomor yang harus dihadapi. <-- HERE menunjukkan di mana dalam ekspresi reguler masalahnya
telah ditemukan. Lihat perlre.
Rentang [] tidak valid "%s" dalam ekspresi reguler; ditandai dengan <-- DI SINI dalam m/%s/
(F) Rentang yang ditentukan dalam kelas karakter memiliki karakter minimum lebih besar dari
karakter maksimal. Satu kemungkinan adalah Anda lupa "{}" dari akhiran Anda
"\x{}" - "\x" tanpa kurung kurawal hanya bisa sampai "ff". <-- SINI menunjukkan
keberadaan dalam ekspresi reguler masalah ditemukan. Lihat perlre.
Rentang "%s" tidak valid di operator transliterasi
(F) Rentang yang ditentukan dalam operator tr/// atau y/// memiliki karakter minimum yang lebih besar
dari karakter maksimal. Lihat perlop.
Karakter pemisah %s tidak valid dalam daftar atribut
(F) Sesuatu selain titik dua atau spasi terlihat di antara elemen-elemen an
daftar atribut. Jika atribut sebelumnya memiliki daftar parameter yang dikurung, mungkin—
daftar itu dihentikan terlalu cepat. Lihat atribut.
Karakter pemisah %s tidak valid dalam spesifikasi lapisan PerlIO %s
(Lapisan W) Saat mendorong lapisan ke sistem I/O Perl, sesuatu selain titik dua
atau spasi terlihat di antara elemen daftar lapisan. Jika sebelumnya
atribut memiliki daftar parameter yang dikurung, mungkin daftar itu juga dihentikan
segera.
Format versi ketat tidak valid (%s)
(F) Nomor versi tidak memenuhi kriteria "ketat" untuk versi. Sebuah "ketat"
nomor versi adalah bilangan desimal positif (bilangan bulat atau pecahan desimal) tanpa
eksponensial atau string-v desimal bertitik dengan karakter 'v' di depan dan di
setidaknya tiga komponen. Teks dalam kurung menunjukkan kriteria mana yang tidak terpenuhi.
Lihat modul versi untuk detail selengkapnya tentang format versi yang diizinkan.
Jenis '%s' tidak valid di %s
(F) Karakter yang diberikan bukan tipe paket atau pembongkaran yang valid. Lihat "paket" di perlfunc.
(W) Karakter yang diberikan bukan tipe pack atau unpack yang valid tetapi digunakan untuk silent
diabaikan.
Format versi tidak valid (%s)
(F) Nomor versi tidak memenuhi kriteria "longgar" untuk versi. Versi "longgar"
bilangan adalah bilangan desimal positif (bilangan bulat atau pecahan desimal) tanpa
eksponensial atau string-v desimal bertitik. Jika v-string memiliki lebih sedikit dari
tiga komponen, itu harus memiliki karakter 'v' terkemuka. Jika tidak, 'v' di depan adalah
pilihan. Versi desimal dan desimal bertitik mungkin memiliki "alfa" tambahan
komponen dipisahkan oleh karakter garis bawah setelah pecahan atau desimal bertitik
komponen. Teks dalam kurung menunjukkan kriteria mana yang tidak terpenuhi. Lihat
versi modul untuk detail lebih lanjut tentang format versi yang diizinkan.
Objek versi tidak valid
(F) Struktur internal objek versi tidak valid. Mungkin bagian dalamnya
dimodifikasi secara langsung dalam beberapa cara atau referensi sewenang-wenang diberkati ke dalam
kelas "versi".
Dalam '(*VERB...)', '(' dan '*' harus berdekatan dalam ekspresi reguler; ditandai dengan <-- HERE di m/%s/
(F) Urutan dua karakter "(*" dalam konteks ini dalam pola ekspresi reguler
harus menjadi token yang tidak dapat dibagi, tanpa ada intervensi antara "(" dan "*",
tapi kau memisahkan mereka.
ioctl tidak diimplementasikan
(F) Mesin Anda tampaknya tidak berfungsi ioctl(), yang cukup aneh untuk a
mesin yang mendukung C.
ioctl() pada %s yang belum dibuka
(W belum dibuka) Anda mencoba ioctl() pada filehandle yang tidak pernah dibuka. Periksa Anda
aliran kontrol dan jumlah argumen.
Lapisan IO (seperti '%s') tidak tersedia
(F) Perl Anda belum dikonfigurasi untuk memiliki PerlIO, dan karena itu Anda tidak dapat menggunakan IO
lapisan. Untuk memiliki PerlIO, Perl harus dikonfigurasi dengan 'useperlio'.
IO::Socket::atmark tidak diimplementasikan pada arsitektur ini
(F) Mesin Anda tidak menerapkan tanda sockat() fungsionalitas, baik sebagai sistem
panggilan atau panggilan ioctl (SIOCATMARK).
'%s' adalah tipe terikat yang tidak diketahui di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menggunakan "\b{...}" atau "\B{...}" dan "..." tidak diketahui Perl. Sekarang
yang valid diberikan dalam "\b{}, \b, \B{}, \B" di perlrebackslash.
"%s" lebih jelas ditulis hanya sebagai "%s" di regex; ditandai dengan <-- DI SINI dalam m/%s/
(W regexp) (hanya di bawah "use re 'strict'" atau di dalam "(?[...])")
Anda menentukan karakter yang memiliki cara penulisan yang lebih jelas, dan yang
juga portabel untuk platform yang berjalan dengan set karakter yang berbeda.
$* tidak lagi didukung
(D tidak digunakan lagi, sintaks) Variabel khusus $*, tidak digunakan lagi di perls yang lebih lama, telah
dihapus pada 5.10.0 dan tidak lagi didukung. Di versi Perl sebelumnya, gunakan
dari $* mengaktifkan atau menonaktifkan pencocokan multi-baris dalam sebuah string.
Alih-alih menggunakan $* Anda harus menggunakan pengubah regexp "/m" (dan mungkin "/s"). Kamu
dapat mengaktifkan "/ m" untuk lingkup leksikal (bahkan seluruh file) dengan "use re '/m'". (Dalam lebih tua
versi: ketika $* disetel ke nilai sebenarnya maka semua ekspresi reguler berperilaku seolah-olah
mereka ditulis menggunakan "/ m".)
$# tidak lagi didukung
(D tidak digunakan lagi, sintaks) Variabel khusus $#, tidak digunakan lagi di perls lama, telah
dihapus pada 5.10.0 dan tidak lagi didukung. Anda harus menggunakan printf/sprintf
fungsi sebagai gantinya.
'%s' bukan referensi kode
(W overload) Argumen kedua (keempat, keenam, ...) dari overload::constant perlu
menjadi referensi kode. Entah subrutin anonim, atau referensi ke subrutin.
'%s' bukan tipe yang kelebihan beban
(W kelebihan beban) Anda mencoba membebani tipe konstan yang tidak disadari oleh paket kelebihan beban.
-i digunakan tanpa nama file pada baris perintah, membaca dari STDIN
(S inplace) Opsi "-i" diteruskan pada baris perintah, yang menunjukkan bahwa skrip
dimaksudkan untuk mengedit file di tempat, tetapi tidak ada file yang diberikan. Ini biasanya
kesalahan, karena mengedit STDIN di tempat tidak masuk akal, dan dapat membingungkan karena
itu dapat membuat Perl terlihat seperti menggantung ketika itu benar-benar hanya mencoba membaca dari
STDIN. Anda harus memberikan nama file untuk diedit, atau menghapus "-i" dari perintah
garis. Lihat perlrun untuk lebih jelasnya.
Sampah di akhir regexp di regex m/%s/
(P) Pengurai ekspresi reguler bingung.
kunci pada referensi adalah eksperimental
(S eksperimental::autoderef) "kunci" dengan argumen skalar adalah eksperimental dan mungkin
mengubah atau dihapus dalam versi Perl mendatang. Jika Anda ingin mengambil risiko menggunakan
fitur ini, cukup nonaktifkan peringatan ini:
tidak ada peringatan "eksperimental::autoderef";
Label tidak ditemukan untuk "%s terakhir"
(F) Anda menamai sebuah lingkaran untuk keluar, tetapi saat ini Anda tidak berada dalam lingkaran dengan nama itu,
bahkan jika Anda menghitung dari mana Anda dipanggil. Lihat "terakhir" di perlfunc.
Label tidak ditemukan untuk "%s berikutnya"
(F) Anda menamai sebuah loop untuk melanjutkan, tetapi saat ini Anda tidak berada dalam loop dengan nama itu, bukan
bahkan jika Anda menghitung dari mana Anda dipanggil. Lihat "terakhir" di perlfunc.
Label tidak ditemukan untuk "ulangi %s"
(F) Anda menamai sebuah loop untuk memulai kembali, tetapi saat ini Anda tidak berada dalam loop dengan nama itu, bukan
bahkan jika Anda menghitung dari mana Anda dipanggil. Lihat "terakhir" di perlfunc.
meninggalkan %s efektif gagal
(F) Sementara di bawah pragma "gunakan filetest", mengganti uid yang nyata dan efektif atau
gid gagal.
panjang/kode setelah akhir string di unpack
(F) Saat membongkar, buffer string sudah habis ketika panjang/kode membongkar
kombinasi mencoba untuk mendapatkan lebih banyak data. Ini menghasilkan nilai yang tidak ditentukan untuk
panjang. Lihat "paket" di perlfunc.
panjang() digunakan pada %s (maksud Anda "skalar(%s)"?)
(Sintaks W) Anda menggunakan panjang() pada array atau hash ketika Anda mungkin menginginkan a
jumlah item.
Ukuran array dapat diperoleh dengan melakukan:
skalar(@array);
Jumlah item dalam hash dapat diperoleh dengan melakukan:
skalar(kunci %hash);
Kode Lexing mencoba memasukkan karakter non-Latin-1 ke input Latin-1
(F) Ekstensi mencoba memasukkan teks ke dalam parse saat ini (menggunakan
lex_stuff_pvn atau serupa), tetapi mencoba memasukkan karakter yang tidak dapat menjadi bagian dari
masukan saat ini. Ini adalah perangkap yang melekat pada mekanisme isian, dan salah satunya
alasan untuk menghindarinya. Di mana perlu diisi, isian hanya ASCII biasa adalah
direkomendasikan.
Kesalahan internal kode lexing (%s)
(F) Kode Lexing yang diberikan oleh ekstensi melanggar API lexer dengan cara yang dapat dideteksi.
dengarkan () pada soket tertutup %s
(W tertutup) Anda mencoba mendengarkan pada soket tertutup. Apakah Anda lupa untuk memeriksa
kembalikan nilai Anda stopkontak () panggilan? Lihat "mendengarkan" di perlfunc.
Bentuk daftar pipa terbuka tidak diterapkan
(F) Pada beberapa platform, terutama Windows, bentuk tiga atau lebih argumen dari "terbuka"
tidak mendukung pipa, seperti "open($pipe, '|-', @args)". Gunakan dua argumen
"open($pipe, '|prog arg1 arg2...')" sebagai gantinya.
%s: pustaka yang dapat dimuat dan binari Perl tidak cocok (mendapat kunci jabat tangan %p, diperlukan %p)
(P) Pustaka pemuatan dinamis ".so" atau ".dll" sedang dimuat ke dalam proses yang
dibangun terhadap bangunan perl yang berbeda dari perpustakaan tersebut dikompilasi
melawan. Menginstal ulang modul XS kemungkinan akan memperbaiki kesalahan ini.
Lokal '%s' mungkin tidak berfungsi dengan baik.%s
(W lokal) Anda menggunakan lokal bernama, yang merupakan non-UTF-8, dan yang perl
telah ditentukan tidak sepenuhnya kompatibel dengan apa yang dapat ditanganinya. %s kedua memberikan a
alasan.
Sejauh ini alasan yang paling umum adalah bahwa lokal memiliki karakter di dalamnya yang
diwakili oleh lebih dari satu byte. Satu-satunya lokal yang dapat ditangani Perl adalah
lokal UTF-8. Kemungkinan besar lokal yang ditentukan adalah non-UTF-8 untuk orang Asia Timur
bahasa seperti Cina atau Jepang. Jika lokal adalah superset dari ASCII, ASCII
sebagian mungkin bekerja di Perl.
Beberapa lokal yang pada dasarnya usang yang bukan merupakan superset dari ASCII, terutama yang ada di ISO
646 atau lokal 7-bit lainnya, seperti ASMO 449, juga dapat mengalami masalah, tergantung pada
bagian mana dari set karakter ASCII yang diubah oleh lokal dan juga digunakan
oleh program. Pesan peringatan mencantumkan karakter konflik yang dapat ditentukan.
Perhatikan bahwa tidak semua inkompatibilitas ditemukan.
Jika ini terjadi pada Anda, tidak banyak yang dapat Anda lakukan kecuali beralih menggunakan yang berbeda
lokal atau gunakan Encode untuk menerjemahkan dari lokal ke UTF-8; jika itu tidak praktis,
Anda telah diperingatkan bahwa beberapa hal mungkin rusak.
Pesan ini dikeluarkan sekali setiap kali lokal yang buruk dialihkan ke dalam ruang lingkup
dari "gunakan lokal", atau pada operasi pertama yang mungkin terpengaruh jika "gunakan lokal"
mewarisi yang buruk. Itu tidak dinaikkan untuk operasi apa pun dari modul POSIX.
waktu lokal(%f) gagal
(W overflow) Anda memanggil "localtime" dengan nomor yang tidak dapat ditangani: terlalu besar,
terlalu kecil, atau NaN. Nilai yang dikembalikan adalah "undef".
waktu lokal(%f) terlalu besar
(W overflow) Anda memanggil "waktu lokal" dengan nomor yang lebih besar dari yang bisa diandalkan
handle dan "localtime" mungkin mengembalikan tanggal yang salah. Peringatan ini juga
dipicu dengan NaN (nilai bukan angka khusus).
waktu lokal(%f) terlalu kecil
(W overflow) Anda memanggil "waktu lokal" dengan nomor yang lebih kecil dari yang bisa
menangani andal dan "waktu lokal" mungkin mengembalikan tanggal yang salah.
Lihat ke belakang lebih lama dari %d tidak diterapkan di regex m/%s/
(F) Saat ini ada batasan panjang string yang dapat ditangani oleh lookbehind.
Pembatasan ini dapat dilonggarkan dalam rilis mendatang.
Kehilangan presisi saat %s %f kali 1
(W ketidaktepatan) Nilai yang Anda coba naikkan atau turunkan terlalu besar
untuk representasi floating point yang mendasari untuk menyimpan secara akurat, maka target
dari "++" atau "--" tidak berubah. Perl mengeluarkan peringatan ini karena sudah
beralih dari bilangan bulat ke floating point ketika nilainya terlalu besar untuk bilangan bulat, dan
sekarang bahkan floating point tidak cukup. Anda mungkin ingin beralih menggunakan Math::BigInt
secara eksplisit.
lstat () di filehandle%s
(W io) Anda mencoba melakukan lstat pada filehandle. Apa yang kamu maksud dengan itu? lstat ()
masuk akal hanya pada nama file. (Perl melakukan fstat () sebagai gantinya di filehandle.)
lvalue atribut %s subrutin yang sudah ditentukan
(W misc) Meskipun atribut.pm memungkinkan ini, mengaktifkan atau menonaktifkan atribut lvalue
subrutin Perl yang sudah didefinisikan tidak selalu bekerja dengan baik. Mungkin atau
mungkin tidak melakukan apa yang Anda inginkan, tergantung pada kode apa yang ada di dalam subrutin, dengan tepat
rincian dapat berubah antara versi Perl. Lakukan ini hanya jika Anda benar-benar tahu apa
Anda sedang melakukan.
lvalue atribut diabaikan setelah subrutin telah didefinisikan
(W misc) Menggunakan sintaks deklaratif ":lvalue" untuk membuat subrutin Perl menjadi lvalue
subrutin setelah didefinisikan tidak diizinkan. Untuk membuat subrutin menjadi
lvalue subrutin, tambahkan atribut lvalue ke definisi, atau letakkan "sub foo
:lvalue;" deklarasi sebelum definisi.
Lihat juga atribut.pm.
Konstanta daftar ajaib tidak didukung
(F) Anda menetapkan array magis ke elemen simpanan, dan kemudian mencoba menggunakan
subrutin dari slot yang sama. Anda meminta Perl untuk melakukan sesuatu yang tidak dapat dilakukannya,
rincian dapat berubah antara versi Perl.
Integer cacat dalam [] dalam paket
(F) Di antara tanda kurung yang melampirkan angka pengulangan angka, hanya angka yang diizinkan.
Lihat "paket" di perlfunc.
Integer cacat di [] di unpack
(F) Di antara tanda kurung yang melampirkan angka pengulangan angka, hanya angka yang diizinkan.
Lihat "paket" di perlfunc.
PERLLIB_PREFIX salah format
(F) Kesalahan khusus untuk OS/2. PERLLIB_PREFIX harus dalam bentuk
awalan1; awalan2
or
awalan1 awalan2
dengan prefix1 dan prefix2 yang tidak kosong. Jika "prefix1" memang merupakan awalan dari builtin
jalur pencarian perpustakaan, awalan2 diganti. Kesalahan mungkin muncul jika komponennya
tidak ditemukan, atau terlalu panjang. Lihat "PERLLIB_PREFIX" di perlos2.
Bentuk prototipe yang salah untuk %s: %s
(F) Anda mencoba menggunakan fungsi dengan bentuk prototipe yang salah. Sintaks fungsi
prototipe diberikan pemeriksaan waktu kompilasi singkat untuk kesalahan yang jelas seperti tidak valid
karakter. Pemeriksaan yang lebih ketat dijalankan saat fungsi dipanggil. Mungkin
penulis fungsi mencoba menulis tanda tangan subrutin tetapi tidak mengaktifkannya
fitur pertama ("gunakan fitur 'tanda tangan'"), jadi tanda tangan itu malah ditafsirkan
sebagai prototipe yang buruk.
Karakter UTF-8 salah format (%s)
(S utf8)(F) Perl mendeteksi string yang tidak mematuhi aturan pengkodean UTF-8, bahkan
meskipun bendera UTF8 menyala.
Salah satu kemungkinan penyebabnya adalah Anda menyetel sendiri flag UTF8 untuk data yang menurut Anda
berada di UTF-8 tetapi tidak (misalnya data 8-bit lama). Untuk menjaga terhadap
ini, Anda dapat menggunakan Encode::decode_utf8.
Jika Anda menggunakan lapisan PerlIO ":encoding(UTF-8)" untuk input, urutan byte yang tidak valid adalah
ditangani dengan anggun, tetapi jika Anda menggunakan ":utf8", bendera disetel tanpa memvalidasi
data, mungkin menghasilkan pesan kesalahan ini.
Lihat juga "Menangani Data yang Salah Bentuk" di Encode.
Karakter UTF-8 salah format tepat setelah '%s'
(F) Anda mengatakan "gunakan utf8", tetapi file program tidak sesuai dengan pengkodean UTF-8
aturan. Pesan mencetak karakter yang dikodekan dengan benar tepat sebelum yang pertama
yang buruk. Jika peringatan "utf8" diaktifkan, peringatan akan dibuat yang memberikan lebih banyak
rincian tentang jenis malformasi.
UTF-8 yang salah format dikembalikan oleh \N{%s} segera setelah '%s'
(F) Handler charnames mengembalikan UTF-8 dengan format yang salah.
String UTF-8 yang salah format dalam format '%c' saat dibongkar
(F) Anda mencoba membongkar sesuatu yang tidak sesuai dengan aturan pengkodean UTF-8 dan
Perl tidak dapat menebak bagaimana membuat lebih banyak kemajuan.
String UTF-8 rusak dalam paket
(F) Anda mencoba mengemas sesuatu yang tidak sesuai dengan aturan pengkodean UTF-8 dan perl
tidak dapat menebak bagaimana membuat lebih banyak kemajuan.
String UTF-8 rusak saat dibongkar
(F) Anda mencoba membongkar sesuatu yang tidak sesuai dengan aturan pengkodean UTF-8 dan
Perl tidak dapat menebak bagaimana membuat lebih banyak kemajuan.
Pengganti UTF-16 yang salah bentuk
(F) Perl mengira sedang membaca data karakter yang disandikan UTF-16 tetapi saat melakukannya Perl
bertemu dengan pengganti Unicode yang cacat.
Parameter wajib mengikuti parameter opsional
(F) Dalam tanda tangan subrutin, Anda menulis sesuatu seperti "$a = undef, $b", membuat an
parameter sebelumnya opsional dan yang berikutnya wajib. Parameter diisi dari kiri
ke kanan, jadi tidak mungkin bagi penelepon untuk mengabaikan yang sebelumnya dan melewati yang nanti
satu. Jika Anda ingin bertindak seolah-olah parameter diisi dari kanan ke kiri, nyatakan
opsional paling kanan dan kemudian mengacak parameter di sekitar subrutin
tubuh.
Poin kode non-Unicode yang cocok 0x%X terhadap properti Unicode; mungkin tidak portabel
(S non_unicode) Perl memungkinkan string berisi superset poin kode Unicode; setiap
titik kode mungkin sebesar apa yang dapat disimpan dalam bilangan bulat yang tidak ditandatangani di sistem Anda,
tetapi ini mungkin tidak diterima oleh bahasa/sistem lain. Pesan ini terjadi ketika
Anda mencocokkan string yang berisi titik kode seperti itu dengan ekspresi reguler
pola, dan titik kode dicocokkan dengan properti Unicode, "\p{...}" atau
"\P{...}". Properti Unicode hanya ditentukan pada poin kode Unicode, jadi hasilnya
pertandingan ini tidak ditentukan oleh Unicode, tetapi Perl (mulai dari v5.20) memperlakukan non-Unicode
poin kode seolah-olah itu adalah yang khas Unicode yang tidak ditugaskan, dan cocok dengan yang ini
demikian. Apakah properti yang diberikan cocok dengan poin kode ini atau tidak ditentukan
di "Properti yang dapat diakses melalui \p{} dan \P{}" di perluniprops.
Pesan ini disembunyikan (kecuali jika telah dibuat fatal) jika tidak penting bagi
hasil kecocokan apakah titik kodenya Unicode atau bukan. Misalnya, properti
"\p{ASCII_Hex_Digit}" hanya dapat mencocokkan 22 karakter "[0-9A-Fa-f]", jadi jelas semuanya
poin kode lain, Unicode atau tidak, tidak akan cocok. (Dan "\P{ASCII_Hex_Digit}" akan
cocokkan setiap poin kode kecuali 22 ini.)
Mendapatkan pesan ini menunjukkan bahwa hasil pertandingan bisa dibilang seharusnya
kebalikan dari apa yang sebenarnya terjadi. Jika Anda berpikir demikian, Anda mungkin berharap
untuk membuat kategori peringatan "non_unicode" menjadi fatal; jika Anda setuju dengan keputusan Perl,
Anda mungkin ingin mematikan kategori ini.
Lihat "Di luar poin kode Unicode" di perlunicode untuk informasi lebih lanjut.
%s cocok dengan string nol berkali-kali di regex; ditandai dengan <-- DI SINI dalam m/%s/
(W regexp) Pola yang Anda tentukan akan menjadi loop tak terbatas jika reguler
mesin ekspresi tidak secara khusus memeriksa itu. <-- SINI menunjukkan keberadaan
dalam ekspresi reguler masalahnya ditemukan. Lihat perlre.
Jumlah maksimum sinyal tertunda (%u) terlampaui
(F) Perl dibatalkan karena jumlah sinyal yang tertunda terlalu tinggi. Ini biasanya menunjukkan
bahwa sistem operasi Anda mencoba mengirimkan sinyal terlalu cepat (dengan
prioritas), membuat proses Perl kekurangan sumber daya yang diperlukan untuk mencapai suatu titik
di mana ia dapat memproses sinyal dengan aman. (Lihat "Sinyal Ditangguhkan (Sinyal Aman)" di
perlipc.)
"%s" mungkin berbenturan dengan kata cadangan di masa mendatang
(W) Peringatan ini mungkin karena menjalankan skrip Perl5 melalui juru bahasa Perl4,
apalagi jika kata yang diperingatkan adalah "gunakan" atau "milikku".
'%' tidak boleh digunakan dalam paket
(F) Anda tidak dapat mengemas string dengan menyediakan checksum, karena proses checksumming
kehilangan informasi, dan Anda tidak bisa pergi ke arah lain. Lihat "membongkar" di perlfunc.
Metode pengoperasian %s tidak ditemukan dalam paket %s selama pemberkatan
(F) Upaya telah dilakukan untuk menentukan entri dalam tabel kelebihan beban yang tidak
menyelesaikan ke subrutin yang valid. Lihat kelebihan beban.
Metode %s tidak diizinkan
Lihat Kesalahan server.
Mungkin string %s multi-baris pelarian yang dimulai dari baris %d
(S) Peringatan yang menunjukkan bahwa kesalahan sebelumnya mungkin disebabkan oleh kesalahan
pembatas pada string atau pola, karena akhirnya berakhir lebih awal pada arus
line.
Salah tempat _ dalam nomor
(Sintaks W) Garis bawah (underbar) dalam konstanta numerik tidak memisahkan dua digit.
Argumen tidak ada di %s
(W hilang) Anda memanggil fungsi dengan argumen lebih sedikit daripada argumen lain yang Anda
disediakan ditunjukkan akan dibutuhkan.
Saat ini hanya dipancarkan ketika format tipe printf membutuhkan lebih banyak argumen daripada sebelumnya
disediakan, tetapi mungkin digunakan di masa depan untuk kasus lain di mana kita dapat secara statis
tentukan bahwa argumen ke fungsi tidak ada, misalnya untuk "paket" di perlfunc
fungsi.
Tidak ada argumen untuk -%c
(F) Argumen untuk sakelar baris perintah yang ditunjukkan harus segera menyusul
saklar, tanpa intervensi spasi.
Kawat gigi tidak ada di \N{}
Kawat gigi tidak ada pada \N{} di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Sintaks salah nama karakter literal "\N{charname}" dalam tanda kutip ganda
konteks. Ini juga dapat terjadi jika ada spasi (atau komentar) antara "\N" dan
"{" dalam regex dengan pengubah "/x". Pengubah ini tidak mengubah
persyaratan bahwa kurung kurawal segera mengikuti "\N".
Kawat gigi tidak ada di \o{}
(F) "\o" harus segera diikuti oleh "{" dalam konteks tanda kutip ganda.
Koma hilang setelah argumen pertama ke fungsi %s
(F) Sementara fungsi tertentu memungkinkan Anda untuk menentukan filehandle atau "objek tidak langsung"
sebelum daftar argumen, ini bukan salah satunya.
Perintah tidak ada dalam pipa terbuka
(Pipa W) Anda menggunakan konstruksi "buka(FH, "| perintah")" atau "buka(FH, "perintah |")",
tetapi perintahnya hilang atau kosong.
Nama karakter kontrol tidak ada di \c
(F) String dengan tanda kutip ganda diakhiri dengan "\c", tanpa karakter kontrol yang diperlukan
Nama.
Tidak ada ']' dalam prototipe untuk %s : %s
(W illegalproto) Pengelompokan dimulai dengan "[" tetapi tidak pernah ditutup dengan "]".
Nama tidak ada di "%s sub"
(F) Sintaks untuk subrutin dengan cakupan leksikal mengharuskan mereka memiliki nama dengan
yang mereka dapat ditemukan.
Tidak ada $ pada variabel loop
(F) Rupanya Anda telah memprogram di csh terlalu banyak. Variabel selalu
disebutkan dengan $ di Perl, tidak seperti di shell, di mana ia dapat bervariasi dari satu baris ke
selanjutnya.
(Operator tidak ada sebelum %s?)
(Sintaks S) Ini adalah tebakan yang dibuat sehubungan dengan pesan "%s ditemukan
di mana operator diharapkan". Seringkali operator yang hilang adalah koma.
Argumen tidak ada atau tidak terdefinisi untuk membutuhkan
(F) Anda mencoba memanggil require tanpa argumen atau dengan nilai yang tidak ditentukan sebagai
argumen. Require mengharapkan nama paket atau spesifikasi file sebagai
argumen. Lihat "memerlukan" di perlfunc.
Tidak ada tanda kurung kurawal di \%c{} di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Tanda kurung kurawal kanan tidak ada di "\x{...}", "\p{...}", "\P{...}", atau "\N{...}".
Tidak ada tanda kurung kurawal di \N{}
Tanda kurung kurawal kanan tidak ada pada \N{} atau tanda kurung kurawal kiri yang tidak lolos setelah \N
(F) "\N" memiliki dua arti.
Yang tradisional memilikinya diikuti dengan nama yang diapit kawat gigi, yang berarti
karakter (atau urutan karakter) yang diberikan oleh nama itu. Jadi "\N{ASTERISK}" adalah
cara lain untuk menulis "*", valid dalam string bertanda kutip ganda dan ekspresi reguler
pola. Dalam pola, itu tidak memiliki arti seperti "*" yang tidak lolos.
Mulai dari Perl 5.12.0, "\N" juga dapat memiliki arti tambahan (hanya) dalam pola,
yaitu untuk mencocokkan karakter non-baris baru. (Ini kependekan dari "[^\n]", dan seperti "." tapi
tidak terpengaruh oleh pengubah regex "/ s".)
Ini dapat menyebabkan beberapa ambiguitas. Ketika "\N" tidak segera diikuti oleh kiri
brace, Perl mengasumsikan arti "[^\n]". Juga, jika kurung kurawal membentuk quantifier yang valid
seperti "\N{3}" atau "\N{5,}", Perl mengasumsikan bahwa ini berarti mencocokkan kuantitas yang diberikan
dari non-baris baru (dalam contoh ini, 3; dan 5 atau lebih, masing-masing). Di semua lainnya
kasus, di mana ada "\N{" dan "}", Perl mengasumsikan bahwa nama karakter adalah
diinginkan.
Namun, jika tidak ada yang cocok dengan "}", Perl tidak tahu apakah itu salah dihilangkan,
atau jika "[^\n]{" diinginkan, dan memunculkan kesalahan ini. Jika yang Anda maksud adalah yang pertama, tambahkan
penjepit kanan; jika maksud Anda yang terakhir, lepas kurung kurawal dengan garis miring terbalik, seperti:
"\N\{"
Tidak ada kurung kurawal atau kurung siku kanan
(F) Lexer menghitung lebih banyak kurung kurawal atau kurung siku daripada kurung tutup. Sebagai
aturan umum, Anda akan menemukannya hilang di dekat tempat terakhir Anda mengedit.
(Tidak ada titik koma pada baris sebelumnya?)
(Sintaks S) Ini adalah tebakan yang dibuat sehubungan dengan pesan "%s ditemukan
di mana operator diharapkan". Jangan secara otomatis menempatkan titik koma pada baris sebelumnya
hanya karena Anda melihat pesan ini.
Modifikasi nilai read-only dicoba
(F) Anda mencoba, secara langsung atau tidak langsung, untuk mengubah nilai suatu konstanta. Anda tidak,
tentu saja, coba "2 = 1", karena kompiler menangkapnya. Tapi cara mudah untuk melakukannya
hal yang sama adalah:
submod { $_[0] = 1 }
mod(2);
Cara lain adalah dengan menugaskan ke substr() itu dari ujung string.
Namun cara lain adalah dengan menetapkan ke loop "foreach" VAR ketika VAR adalah alias untuk konstanta
dalam tampilan DAFTAR:
$ x = 1;
foreach $n saya ($x, 2) {
$n *= 2; # memodifikasi $x, tetapi gagal saat mencoba
} # ubah 2
Modifikasi nilai larik yang tidak dapat dibuat dicoba, %s
(F) Anda mencoba membuat nilai larik menjadi ada, dan subskripnya adalah
mungkin negatif, bahkan dihitung dari akhir array ke belakang.
Modifikasi nilai hash yang tidak dapat dibuat dicoba, %s
(P) Anda mencoba membuat nilai hash muncul, dan itu tidak dapat dibuat
untuk beberapa alasan yang aneh.
Nama modul harus konstan
(F) Hanya nama modul kosong yang diizinkan sebagai argumen pertama untuk "penggunaan".
Nama modul diperlukan dengan opsi -%c
(F) Opsi "-M" atau "-m" mengatakan bahwa Perl harus memuat beberapa modul, tetapi Anda menghilangkan
nama modulnya. Konsultasikan perlrun untuk detail lengkap tentang "-M" dan "-m".
Lebih dari satu argumen untuk membuka '%s'
(F) Fungsi "buka" telah diminta untuk membuka banyak file. Ini bisa terjadi jika Anda
mencoba membuka pipa ke perintah yang mengambil daftar argumen, tetapi memiliki
lupa untuk menentukan mode buka pipa. Lihat "buka" di perlfunc untuk detailnya.
mprotect untuk string sapi %p %u gagal dengan %d
(S) Anda mengkompilasi Perl dengan -DPERL_DEBUG_READONLY_COW (lihat "Menyalin saat Tulis" di
perlguts), tetapi buffer string bersama tidak dapat dibuat hanya-baca.
mprotect untuk %p %u gagal dengan %d
(S) Anda mengkompilasi Perl dengan -DPERL_DEBUG_READONLY_OPS (lihat perlhacktips), tetapi sebuah op
pohon tidak dapat dibuat hanya-baca.
mprotect RW untuk string COW %p %u gagal dengan %d
(S) Anda mengkompilasi Perl dengan -DPERL_DEBUG_READONLY_COW (lihat "Menyalin saat Tulis" di
perlguts), tetapi buffer string bersama hanya-baca tidak dapat diubah.
mprotect RW untuk %p %u gagal dengan %d
(S) Anda mengkompilasi Perl dengan -DPERL_DEBUG_READONLY_OPS (lihat perlhacktips), tetapi baca-
hanya op tree yang tidak dapat diubah sebelum membebaskan ops.
msg%s tidak diterapkan
(F) Anda tidak memiliki IPC pesan Sistem V di sistem Anda.
Sintaks multidimensi %s tidak didukung
(Sintaks W) Array multidimensi tidak ditulis seperti $foo[1,2,3]. Mereka ditulis
seperti $foo[1][2][3], seperti pada C.
'/' harus mengikuti jenis numerik dalam membongkar
(F) Anda memiliki template unpack yang berisi '/', tetapi ini tidak mengikuti beberapa
membongkar spesifikasi menghasilkan nilai numerik. Lihat "paket" di perlfunc.
"sub saya" belum diterapkan
(F) Subrutin dengan cakupan leksikal belum diimplementasikan. Jangan coba itu dulu.
Subrutin "saya" %s tidak dapat berada dalam satu paket
(F) Subrutin yang dicakup secara leksikal tidak ada dalam satu paket, jadi tidak masuk akal untuk mencoba
untuk mendeklarasikan satu dengan kualifikasi paket di bagian depan.
"%s saya" digunakan dalam perbandingan pengurutan
(Sintaks W) Variabel paket $a dan $b digunakan untuk perbandingan pengurutan. Anda menggunakan $a
atau $b sebagai operan ke operator "<=>" atau "cmp" di dalam blok perbandingan pengurutan,
dan variabel sebelumnya telah dideklarasikan sebagai variabel leksikal. Baik memenuhi syarat
mengurutkan variabel dengan nama paket, atau mengganti nama variabel leksikal.
variabel "saya" %s tidak boleh ada dalam satu paket
(F) Variabel yang dicakup secara leksikal tidak ada dalam satu paket, jadi tidak masuk akal untuk mencoba
nyatakan satu dengan kualifikasi paket di bagian depan. Menggunakan lokal() jika Anda menghendaki
melokalkan variabel paket.
Nama "%s::%s" hanya digunakan sekali: kemungkinan salah ketik
(W sekali) Kesalahan tipografi sering muncul sebagai nama variabel yang unik. Jika Anda memiliki
alasan bagus untuk memiliki nama yang unik, lalu sebutkan lagi entah bagaimana untuk menekan
pesan. Deklarasi "kami" juga disediakan untuk tujuan ini.
CATATAN: Peringatan ini mendeteksi simbol paket yang hanya digunakan sekali. Ini berarti
variabel leksikal tidak akan pernah memicu peringatan ini. Ini juga berarti bahwa semua
variabel paket $c, @c, %c, serta *c, &c, sub c{}, c(), dan c (pegangan file
atau format) dianggap sama; jika sebuah program menggunakan $c hanya sekali tetapi juga menggunakan any
dari yang lain itu tidak akan memicu peringatan ini. Simbol dimulai dengan garis bawah
dan simbol yang menggunakan pengenal khusus (qv perldata) dikecualikan dari peringatan ini.
Perlu tepat 3 digit oktal dalam regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Dalam "(?[ ])", semua konstanta yang ditafsirkan sebagai oktal harus tepat 3 digit
panjang. Ini membantu menangkap beberapa ambiguitas. Jika konstanta Anda terlalu pendek, tambahkan awalan
nol, seperti
(?[ [ \078 ] ]) # Kesalahan sintaks!
(?[ [ \0078 ] ]) # Bekerja
(?[ [ \007 8 ] ]) # Lebih Jelas
Jumlah maksimum yang dapat diekspresikan oleh konstruk ini adalah "\777". Jika Anda membutuhkan yang lebih besar,
Anda perlu menggunakan \o{} sebagai gantinya. Jika Anda bermaksud dua hal yang terpisah, Anda harus memisahkan
mereka:
(?[ [ \7776 ] ]) # Kesalahan sintaks!
(?[ [ \o{7776} ] ]) # Satu arti
(?[ [ \777 6 ] ]) # Arti lain
(?[ [ \777 \006 ] ]) # Masih lain
Hitungan negatif '/' saat membongkar
(F) Hitungan panjang yang diperoleh dari operasi pembongkaran kode/panjang adalah negatif. Melihat
"paket" di perlfunc.
panjang negatif
(F) Anda mencoba melakukan operasi baca/tulis/kirim/terima dengan panjang buffer yang lebih kecil
dari 0. Ini sulit dibayangkan.
Offset negatif ke vec dalam konteks nilai
(F) Ketika "vec" dipanggil dalam konteks nilai, argumen kedua harus lebih besar
dari atau sama dengan nol.
Hitungan pengulangan negatif tidak menghasilkan apa-apa
(W numerik) Anda mencoba menjalankan operator pengulangan "x" kurang dari 0 kali, yang
tidak masuk akal.
Kuantifier bersarang di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda tidak dapat mengkuantifikasi sebuah quantifier tanpa mengintervensi tanda kurung. Jadi hal-hal seperti
** atau +* atau ?* ilegal. <-- HERE menunjukkan keberadaan dalam ekspresi reguler
masalah itu ditemukan.
Perhatikan bahwa quantifier pencocokan minimal, "*?", "+?", dan "??" tampaknya bersarang
quantifier, tetapi tidak. Lihat perlre.
%s tidak pernah diperkenalkan
(S internal) Simbol yang dimaksud dideklarasikan tetapi entah bagaimana keluar dari ruang lingkup sebelumnya
itu mungkin telah digunakan.
berikutnya::metode/berikutnya::bisa/mungkin::berikutnya::metode tidak dapat menemukan metode terlampir
(F) "berikutnya::metode" perlu dipanggil dalam konteks metode nyata secara nyata
paket, dan tidak dapat menemukan konteks seperti itu. Lihat mr.
\N dalam kelas karakter harus berupa karakter bernama: \N{...} di regex; ditandai dengan <-- DI SINI di
MS/
(F) Arti baru (pada Perl 5.12) dari "\N" sebagai "[^\n]" tidak valid dalam tanda kurung
kelas karakter, untuk alasan yang sama bahwa "." di kelas karakter kehilangan nya
keistimewaan: cocok dengan hampir semua hal, yang mungkin bukan yang Anda inginkan.
\N{} di kelas karakter terbalik atau sebagai titik akhir rentang dibatasi untuk satu karakter di
ekspresi reguler; ditandai dengan <-- DI SINI dalam m/%s/
(F) Karakter Unicode yang diberi nama lolos ("\N{...}") dapat mengembalikan urutan multi-karakter.
Meskipun kelas karakter seharusnya hanya cocok dengan satu karakter input, perl
akan mencocokkan semuanya dengan benar, kecuali jika kelasnya dibalik ("[^...]"), atau
escape adalah titik awal atau akhir akhir dari suatu range. Secara matematis logis
perilaku untuk apa yang cocok saat pembalik sangat berbeda dari apa yang orang harapkan, jadi
kami telah memutuskan untuk melarangnya. Demikian pula tidak jelas apa yang harus dihasilkan ketika
"\N{...}" digunakan sebagai salah satu titik akhir rentang, seperti di
[\x{41}-\N{URUTAN ARAB YEH DENGAN HAMZA DI ATAS DENGAN AE}]
Apa yang dimaksud di sini tidak jelas, karena pelarian "\N{...}" adalah urutan titik kode,
jadi ini dibuat kesalahan.
\N{NAME} harus diselesaikan oleh lexer di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Saat mengkompilasi pola regex, karakter atau urutan bernama yang belum terselesaikan adalah
ditemui. Ini dapat terjadi dengan salah satu dari beberapa cara yang melewati lexer, seperti:
menggunakan konteks tanda kutip tunggal, atau garis miring terbalik tambahan dalam tanda kutip ganda:
$re = '\N{SPASI}'; # Salah!
$re = "\\N{SPASI}"; # Salah!
/$kembali/;
Sebagai gantinya, gunakan tanda kutip ganda dengan satu garis miring terbalik:
$re = "\N{SPASI}"; # oke
/$kembali/;
Lexer juga dapat dilewati dengan membuat pola dari komponen yang lebih kecil:
$re = '\N';
/${re}{SPACE}/; # Salah!
Bukan ide yang baik untuk membagi konstruksi di tengah seperti ini, dan itu tidak akan berhasil
di sini. Alih-alih gunakan solusi di atas.
Akhirnya, pesan juga dapat terjadi di bawah pengubah regex "/x" ketika "\N" adalah
dipisahkan oleh spasi dari "{", dalam hal ini, hapus spasi.
/\N {SPASI}/x; # Salah!
/\N{SPASI}/x; # oke
Tidak ada %s yang diizinkan saat menjalankan setuid
(F) Operasi tertentu dianggap terlalu tidak aman untuk skrip setuid atau setgid untuk
bahkan diizinkan untuk mencoba. Secara umum akan ada cara lain untuk melakukan apa
yang Anda inginkan adalah, jika tidak aman, setidaknya dapat diamankan. Lihat perlsec.
NO-BREAK SPACE dalam definisi alias charnames tidak digunakan lagi
(D usang) Anda mendefinisikan nama karakter yang berisi ruang tanpa jeda
karakter. Ubah ke ruang biasa. Biasanya nama-nama ini didefinisikan dalam
":alias" impor argumen ke "gunakan charnames", tetapi mereka dapat didefinisikan oleh penerjemah
diinstal ke $^H{charnames}. Lihat "ALIAS KUSTOM" di charnames.
Tidak ada kode yang ditentukan untuk -%c
(F) Perl's -e dan -E opsi baris perintah memerlukan argumen. Jika Anda ingin menjalankan
program kosong, berikan string kosong sebagai argumen terpisah atau jalankan program
terdiri dari satu 0 atau 1:
perl -e ""
perl -e0
perl -e1
Tidak boleh ada koma setelah %s
(F) Operator daftar yang memiliki filehandle atau "objek tidak langsung" tidak diperbolehkan memiliki
koma antara itu dan argumen berikut. Kalau tidak, itu hanya akan menjadi yang lain
dari argumen.
Salah satu kemungkinan penyebabnya adalah Anda diharapkan telah mengimpor konstanta ke . Anda
ruang nama dengan menggunakan or mengimpor sementara tidak ada pengimporan seperti itu, mungkin misalnya
karena sistem operasi Anda tidak mendukung konstanta tertentu. Semoga
Anda memang menggunakan daftar impor eksplisit untuk konstanta yang Anda harapkan untuk dilihat; silahkan lihat
"gunakan" di perlfunc dan "impor" di perlfunc. Sementara daftar impor eksplisit akan
mungkin telah menangkap kesalahan ini sebelumnya secara alami tidak memperbaiki fakta bahwa
sistem operasi Anda masih tidak mendukung konstanta itu. Mungkin Anda salah ketik
konstanta dari daftar impor simbol menggunakan or mengimpor atau dalam nama konstan di
baris di mana kesalahan ini dipicu?
Tidak ada perintah untuk disalurkan pada baris perintah
(F) Sebuah kesalahan khusus untuk VMS. Perl menangani pengalihan baris perintahnya sendiri, dan
menemukan '|' di akhir baris perintah, sehingga tidak tahu di mana Anda ingin menyalurkan
output dari perintah ini.
Tidak ada DB :: DB rutin yang ditentukan
(F) Kode yang sedang dieksekusi dikompilasi dengan -d beralih, tetapi untuk beberapa alasan
debugger saat ini (mis perl5db.pl atau modul "Devel::") tidak mendefinisikan rutin
untuk dipanggil di awal setiap pernyataan.
Tidak ada dbm di mesin ini
(P) Ini dihitung sebagai kesalahan internal, karena setiap mesin harus memasok dbm
saat ini, karena Perl hadir dengan SDBM. Lihat SDBM_File.
Tidak ada DB::sub rutin yang ditentukan
(F) Kode yang sedang dieksekusi dikompilasi dengan -d beralih, tetapi untuk beberapa alasan
debugger saat ini (mis perl5db.pl atau modul "Devel::") tidak mendefinisikan "DB::sub"
rutin untuk dipanggil pada awal setiap panggilan subrutin biasa.
Tidak ada direktori yang ditentukan untuk -I
(F) -I saklar baris perintah memerlukan nama direktori sebagai bagian dari sama argumen.
penggunaan -Ilib, Misalnya. -I lib tidak akan bekerja.
Tidak ada file kesalahan setelah 2> atau 2>> pada baris perintah
(F) Sebuah kesalahan khusus untuk VMS. Perl menangani pengalihan baris perintahnya sendiri, dan
menemukan '2>' atau '2>>' pada baris perintah, tetapi tidak dapat menemukan nama file untuk
yang untuk menulis data yang ditujukan untuk stderr.
Tidak ada karakter akhir grup '%c' yang ditemukan di template
(F) Sebuah template pack atau unpack memiliki pembukaan '(' atau '[' tanpa kecocokannya
rekan. Lihat "paket" di perlfunc.
Tidak ada file input setelah < pada baris perintah
(F) Sebuah kesalahan khusus untuk VMS. Perl menangani pengalihan baris perintahnya sendiri, dan
menemukan '<' pada baris perintah, tetapi tidak dapat menemukan nama file untuk
membaca data untuk stdin.
Selanjutnya::metode '%s' tidak ditemukan untuk %s
(F) "berikutnya::metode" tidak menemukan contoh lebih lanjut dari nama metode ini di sisanya
paket MRO kelas ini. Jika Anda tidak ingin mengeluarkan pengecualian, gunakan
"mungkin::berikutnya::metode" atau "berikutnya::bisa". Lihat mr.
Jumlah pengulangan yang tidak terbatas tidak menghasilkan apa-apa
(W numerik) Anda mencoba menjalankan operator pengulangan "x" "Inf" (atau "-Inf") atau
"NaN" kali, yang tidak masuk akal.
Karakter non-hex dalam regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Dalam ekspresi reguler, ada karakter non-heksadesimal di mana yang heksa adalah
diharapkan, seperti
(?[ [ \xDG ] ])
(?[ [ \x{DEKA} ] ])
Karakter non-oktal dalam regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Dalam ekspresi reguler, ada karakter non-oktal di mana karakter oktal adalah
diharapkan, seperti
(?[ [ \o{1278} ] ])
Karakter non-oktal '%c'. Diselesaikan sebagai "%s"
(Digit W) Dalam menguraikan konstanta numerik oktal, sebuah karakter tiba-tiba muncul
ditemui yang tidak oktal. Nilai yang dihasilkan adalah seperti yang ditunjukkan.
"tidak" tidak diperbolehkan dalam ekspresi
(F) Kata kunci "tidak" dikenali dan dieksekusi pada waktu kompilasi, dan tidak menghasilkan sesuatu yang berguna
nilai. Lihat perlmod.
Non-string diteruskan sebagai bitmask
(W misc) Sejumlah telah diteruskan sebagai argumen bitmask ke Pilih(). Menggunakan vektor()
berfungsi untuk membuat bitmask deskriptor file untuk dipilih. Lihat "pilih" di
perfunc.
Tidak ada file keluaran setelah > pada baris perintah
(F) Sebuah kesalahan khusus untuk VMS. Perl menangani pengalihan baris perintahnya sendiri, dan
menemukan satu-satunya '>' di akhir baris perintah, sehingga tidak tahu di mana Anda inginkan
untuk mengarahkan ulang stdout.
Tidak ada file keluaran setelah > atau >> pada baris perintah
(F) Sebuah kesalahan khusus untuk VMS. Perl menangani pengalihan baris perintahnya sendiri, dan
menemukan '>' atau '>>' pada baris perintah, tetapi tidak dapat menemukan nama file
yang untuk menulis data yang ditujukan untuk stdout.
Tidak ada nama paket yang diizinkan untuk variabel %s di "kami"
(F) Nama variabel yang sepenuhnya memenuhi syarat tidak diperbolehkan dalam deklarasi "kami", karena itu
tidak masuk akal menurut aturan yang ada. Sintaks seperti itu dicadangkan untuk masa depan
ekstensi.
Tidak ada skrip Perl yang ditemukan di input
(F) Anda memanggil "perl -x", tetapi tidak ada baris yang ditemukan di file yang diawali dengan #! dan
mengandung kata "perl".
Tidak ada setregid yang tersedia
(F) Konfigurasi tidak menemukan sesuatu yang menyerupai setreg() panggilan untuk sistem Anda.
Tidak ada setreuid yang tersedia
(F) Konfigurasi tidak menemukan sesuatu yang menyerupai setreuid() panggilan untuk sistem Anda.
Tidak ada kelas seperti itu %s
(F) Anda memberikan kualifikasi kelas dalam deklarasi "saya", "kami" atau "negara bagian", tetapi ini
kelas tidak ada pada saat ini di program Anda.
Tidak ada bidang kelas seperti itu "%s" dalam variabel %s dari tipe %s
(F) Anda mencoba mengakses kunci dari hash melalui variabel yang diketik tetapi
kunci itu tidak diizinkan oleh paket dengan tipe yang sama. Paket yang ditunjukkan memiliki
membatasi set kunci yang diizinkan menggunakan pragma bidang.
Tidak ada pengait seperti itu: %s
(F) Anda menentukan pengait sinyal yang tidak dikenali oleh Perl. Saat ini, Perl
menerima "__DIE__" dan "__WARN__" sebagai kait sinyal yang valid.
Tidak ada pipa seperti itu yang terbuka
(P) Sebuah kesalahan khusus untuk VMS. Rutinitas internal tutup_saya() mencoba menutup pipa
yang belum dibuka. Ini seharusnya ditangkap lebih awal sebagai upaya untuk menutup
sebuah filehandle yang belum dibuka.
Tidak ada sinyal seperti itu: SIG%s
(Sinyal W) Anda menetapkan nama sinyal sebagai subskrip ke %SIG yang tidak dikenali.
Ucapkan "kill -l" di shell Anda untuk melihat nama sinyal yang valid di sistem Anda.
Bukan referensi KODE
(F) Perl mencoba mengevaluasi referensi ke nilai kode (yaitu, subrutin),
tetapi menemukan referensi ke sesuatu yang lain sebagai gantinya. Anda dapat menggunakan referensi() berfungsi untuk
mencari tahu apa jenis ref itu benar-benar. Lihat juga perlref.
Bukan referensi GLOB
(F) Perl mencoba mengevaluasi referensi ke "typeglob" (yaitu, tabel simbol
entri yang terlihat seperti *foo), tetapi malah menemukan referensi ke sesuatu yang lain. Kamu bisa
gunakan referensi() berfungsi untuk mengetahui jenis ref itu sebenarnya. Lihat perlref.
Bukan referensi HASH
(F) Perl mencoba mengevaluasi referensi ke nilai hash, tetapi menemukan referensi ke
sesuatu yang lain sebagai gantinya. Anda dapat menggunakan referensi() berfungsi untuk mengetahui jenis ref
itu benar-benar. Lihat perlref.
Bukan referensi ARRAY
(F) Perl mencoba mengevaluasi referensi ke nilai array, tetapi menemukan referensi
untuk sesuatu yang lain sebagai gantinya. Anda dapat menggunakan referensi() berfungsi untuk mengetahui jenis
ref itu benar-benar. Lihat perlref.
Bukan referensi ARRAY yang tidak diberkati
(F) Anda memberikan referensi ke array yang diberkati ke "push", "shift" atau array lain
fungsi. Ini hanya menerima referensi array yang tidak diberkati atau array yang dimulai secara eksplisit
dengan "@".
Bukan referensi SCALAR
(F) Perl mencoba mengevaluasi referensi ke nilai skalar, tetapi menemukan referensi
untuk sesuatu yang lain sebagai gantinya. Anda dapat menggunakan referensi() berfungsi untuk mengetahui jenis
ref itu benar-benar. Lihat perlref.
Bukan referensi subrutin
(F) Perl mencoba mengevaluasi referensi ke nilai kode (yaitu, subrutin),
tetapi menemukan referensi ke sesuatu yang lain sebagai gantinya. Anda dapat menggunakan referensi() berfungsi untuk
mencari tahu apa jenis ref itu benar-benar. Lihat juga perlref.
Bukan referensi subrutin dalam tabel kelebihan beban
(F) Upaya telah dilakukan untuk menentukan entri dalam tabel kelebihan beban yang tidak
entah bagaimana menunjuk ke subrutin yang valid. Lihat kelebihan beban.
Tidak cukup argumen untuk %s
(F) Fungsi membutuhkan lebih banyak argumen daripada yang Anda tentukan.
Argumen format tidak cukup
(Sintaks W) Sebuah format menentukan lebih banyak bidang gambar daripada baris berikutnya yang disediakan. Lihat
melakukan.
%s: tidak ditemukan
(A) Anda tidak sengaja menjalankan skrip Anda melalui Bourne shell, bukan Perl.
Periksalah #! baris, atau masukkan sendiri skrip Anda ke Perl secara manual.
(?[...]) tidak valid di lokal di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) "(?[...])" tidak dapat digunakan dalam lingkup "gunakan lokal" atau dengan "/l"
pengubah ekspresi reguler, karena itu akan membutuhkan penundaan untuk menjalankan-waktu
perhitungan apa yang harus dievaluasi, dan itu hanya waktu kompilasi regex.
tidak ada informasi offset UTC; dengan asumsi waktu setempat adalah UTC
(S) Peringatan khusus untuk VMS. Perl tidak dapat menemukan offset zona waktu lokal, jadi
itu dengan asumsi bahwa waktu sistem lokal setara dengan UTC. Jika tidak, tentukan
nama logis SYS$TIMEZONE_DIFFERENTIAL untuk menerjemahkan ke jumlah detik yang
perlu ditambahkan ke UTC untuk mendapatkan waktu lokal.
NULL OP DALAM RUN
(S debugging) Beberapa rutin internal disebut Lari() dengan pointer opcode nol.
Gambar kosong di formline
(F) Argumen pertama ke formline harus berupa spesifikasi gambar format yang valid. Dia
ditemukan kosong, yang mungkin berarti Anda memberikan nilai yang tidak diinisialisasi.
Lihat kinerja.
Alokasi ulang nol
(P) Upaya telah dilakukan untuk mengalokasikan NULL.
argumen regexp NULL
(P) Rutinitas pencocokan pola internal gagal.
Parameter regexp NULL
(P) Rutinitas pencocokan pola internal keluar dari labu mereka.
Nomor terlalu panjang
(F) Perl membatasi representasi angka desimal dalam program menjadi sekitar 250
karakter. Anda telah melampaui panjang itu. Versi Perl yang akan datang kemungkinan akan
menghilangkan batasan sewenang-wenang ini. Sementara itu, coba gunakan notasi ilmiah
(misalnya "1e6" bukannya "1_000_000").
Angka tanpa angka
(F) Perl sedang mencari nomor tetapi tidak menemukan apa pun yang tampak seperti nomor. Ini
terjadi, misalnya dengan "\o{}", tanpa nomor di antara kurung kurawal.
Bilangan oktal > 037777777777 non-portabel
(W portabel) Angka oktal yang Anda tentukan lebih besar dari 2**32-1 (4294967295) dan
oleh karena itu non-portabel antar sistem. Lihat perlport untuk lebih lanjut tentang portabilitas
keprihatinan.
Argumen nama/nilai ganjil untuk subrutin
(F) Subrutin yang menggunakan parameter hash slurpy di tanda tangannya menerima angka ganjil
argumen untuk mengisi hash. Ini membutuhkan argumen untuk dipasangkan, dengan
jumlah kunci yang sama dengan nilai. Penelepon subrutin mungkin salah.
Tidak nyaman, kesalahan ini akan dilaporkan di lokasi subrutin, bukan
itu dari si penelepon.
Jumlah argumen ganjil untuk kelebihan::konstan
(W overload) Panggilan untuk overload::constant berisi jumlah argumen yang ganjil. Itu
argumen harus berpasangan.
Jumlah elemen ganjil dalam hash anonim
(W misc) Anda menentukan jumlah elemen ganjil untuk menginisialisasi hash, yang ganjil,
karena hash datang dalam pasangan kunci/nilai.
Jumlah elemen ganjil dalam penetapan hash
(W misc) Anda menentukan jumlah elemen ganjil untuk menginisialisasi hash, yang ganjil,
karena hash datang dalam pasangan kunci/nilai.
Mengimbangi string luar
(F)(Lapisan W) Anda mencoba melakukan operasi baca/tulis/kirim/terima/cari dengan offset
menunjuk ke luar buffer. Ini sulit untuk dibayangkan. Satu-satunya pengecualian untuk
ini adalah padding nol akan terjadi ketika melewati ujung senar ketika
baik "sysread()" file, atau ketika mencari melewati akhir skalar dibuka untuk I/O
(untuk mengantisipasi pembacaan di masa mendatang dan untuk meniru perilaku dengan file nyata).
%s() pada %s yang belum dibuka
(W belum dibuka) Operasi I/O dicoba pada filehandle yang tidak pernah
diinisialisasi. Anda perlu melakukan Buka(), Sebuah buka sistem(), Atau stopkontak () hubungi, atau hubungi
konstruktor dari paket FileHandle.
-%s pada filehandle yang belum dibuka %s
(W belum dibuka) Anda mencoba memanggil operator pengujian file pada pegangan file yang tidak terbuka.
Periksa aliran kontrol Anda. Lihat juga "-X" di perlfunc.
ups: oopsAV
(S internal) Peringatan internal bahwa tata bahasanya kacau.
ups: oopsHV
(S internal) Peringatan internal bahwa tata bahasanya kacau.
Membuka dirhandle %s juga sebagai file
(D io, tidak digunakan lagi) Anda menggunakan Buka() untuk mengasosiasikan filehandle ke simbol (glob atau
skalar) yang sudah memegang dirhandle. Meskipun legal, idiom ini mungkin membuat Anda
kode membingungkan dan tidak digunakan lagi.
Membuka filehandle %s juga sebagai direktori
(D io, tidak digunakan lagi) Anda menggunakan bukadir() untuk mengasosiasikan dirhandle dengan simbol (glob or
skalar) yang sudah memegang filehandle. Meskipun legal, idiom ini mungkin membuat Anda
kode membingungkan dan tidak digunakan lagi.
Operan tanpa operator sebelumnya di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menulis sesuatu seperti
(?[ \p{Digit} \p{Thailand} ])
Ada dua operan, tetapi tidak ada operator yang memberikan cara Anda ingin menggabungkannya.
Operasi "%s": tidak ada metode yang ditemukan, %s
(F) Upaya dilakukan untuk melakukan operasi kelebihan beban yang tidak ada pawangnya
didefinisikan. Sementara beberapa penangan dapat dibuat otomatis dalam hal penangan lain, ada
bukan pengendali default untuk operasi apa pun, kecuali jika kunci kelebihan beban "fallback" adalah
ditentukan untuk menjadi benar. Lihat kelebihan beban.
Operasi "%s" mengembalikan argumennya untuk titik kode non-Unicode 0x%X
(S non_unicode) Anda melakukan operasi yang membutuhkan aturan Unicode pada titik kode
yang tidak ada di Unicode, jadi apa yang harus dilakukan tidak ditentukan. Perl telah memilih untuk memiliki
itu tidak melakukan apa-apa, dan memperingatkan Anda.
Jika operasi yang ditampilkan adalah "ToFold", itu berarti pencocokan case-insensitive dalam a
ekspresi reguler dilakukan pada titik kode.
Jika Anda tahu apa yang Anda lakukan, Anda dapat mematikan peringatan ini dengan "tidak ada peringatan
'non_unicode';".
Operasi "%s" mengembalikan argumennya untuk pengganti UTF-16 U+%X
(Pengganti S) Anda melakukan operasi yang membutuhkan aturan Unicode pada Unicode
pengganti. Unicode tidak menyukai penggunaan pengganti untuk apa pun selain menyimpan string
di UTF-16, tetapi aturan (dengan enggan) ditentukan untuk pengganti, dan mereka harus melakukannya
apa-apa untuk operasi ini. Karena penggunaan pengganti bisa berbahaya, Perl
memperingatkan.
Jika operasi yang ditampilkan adalah "ToFold", itu berarti pencocokan case-insensitive dalam a
ekspresi reguler dilakukan pada titik kode.
Jika Anda tahu apa yang Anda lakukan, Anda dapat mematikan peringatan ini dengan "tidak ada peringatan
'pengganti';".
Operator atau titik koma hilang sebelum %s
(S ambigu) Anda menggunakan panggilan variabel atau subrutin di mana parser mengharapkan dan
operator. Pengurai menganggap Anda benar-benar bermaksud menggunakan operator, tetapi ini
kemungkinan besar salah. Misalnya, jika Anda mengatakan "*foo *foo" itu akan menjadi
ditafsirkan seolah-olah Anda mengatakan "*foo * 'foo'".
Parameter opsional tidak memiliki ekspresi default
(F) Dalam tanda tangan subrutin, Anda menulis sesuatu seperti "$a =", membuat nama
parameter opsional tanpa nilai default. Parameter opsional tanpa nama adalah
diizinkan untuk tidak memiliki nilai default, tetapi yang bernama harus memiliki default tertentu. Anda
mungkin ingin "$a = undef".
variabel "kita" %s dideklarasikan ulang
(W misc) Anda tampaknya telah mendeklarasikan global yang sama sekali sebelumnya di saat ini
lingkup leksikal.
Keluar dari memori!
(X) Itu malloc () fungsi dikembalikan 0, menunjukkan tidak ada cukup sisa
memori (atau memori virtual) untuk memenuhi permintaan. Perl tidak punya pilihan selain keluar
segera.
Setidaknya di Unix Anda mungkin bisa melewati ini dengan meningkatkan ukuran data proses Anda
batas: di csh/tcsh gunakan "batas" dan "batas ukuran data n" (di mana "n" adalah jumlah
kilobyte) untuk memeriksa batas saat ini dan mengubahnya, dan dalam penggunaan ksh/bash/zsh
"ulimit -a" dan "ulimit -dn", masing-masing.
Kehabisan memori selama %s perpanjangan
(X) Upaya telah dilakukan untuk memperluas array, daftar, atau string di luar yang terbesar
kemungkinan alokasi memori.
Kehabisan memori selama permintaan "besar" untuk %s
(F) malloc () fungsi dikembalikan 0, menunjukkan tidak ada cukup sisa
memori (atau memori virtual) untuk memenuhi permintaan. Namun, permintaan itu dinilai
cukup besar (default waktu kompilasi adalah 64K), jadi kemungkinan untuk dimatikan dengan menjebak
kesalahan ini diberikan.
Kehabisan memori selama permintaan untuk %s
(X)(P) Itu malloc () fungsi dikembalikan 0, menunjukkan tidak ada cukup sisa
memori (atau memori virtual) untuk memenuhi permintaan.
Permintaan itu dinilai kecil, jadi kemungkinan untuk menjebaknya tergantung pada caranya
perl dikompilasi. Secara default tidak dapat dijebak. Namun, jika dikompilasi untuk ini,
Perl dapat menggunakan konten $^M sebagai kolam darurat setelahnya mati ()dengan ini
pesan. Dalam hal ini kesalahannya bisa dijebak sekali, dan pesan kesalahan akan menyertakan
baris dan file tempat permintaan gagal terjadi.
Kehabisan memori selama permintaan yang sangat besar
(F) Anda tidak dapat mengalokasikan lebih dari 2^31+ byte "jumlah kecil". Kesalahan ini kemungkinan besar
disebabkan oleh kesalahan ketik dalam program Perl. misalnya, $arr[time] bukannya $arr[$time].
Kehabisan memori untuk tumpukan yacc
(F) Pengurai yacc ingin menambah tumpukannya sehingga dapat melanjutkan penguraian, tapi
alokasi ulang() tidak akan memberikan lebih banyak memori, virtual atau sebaliknya.
'.' di luar string dalam paket
(F) Argumen untuk '.' di templat Anda mencoba memindahkan posisi kerja ke
sebelum dimulainya string yang dikemas sedang dibangun.
'@' di luar string dalam membongkar
(F) Anda memiliki template yang menentukan posisi absolut di luar string yang
dibongkar. Lihat "paket" di perlfunc.
'@' di luar string dengan format UTF-8 yang salah saat dibongkar
(F) Anda memiliki template yang menentukan posisi absolut di luar string yang
dibongkar. String yang sedang dibongkar juga tidak valid UTF-8. Lihat "paket" di perlfunc.
kelebihan arg '%s' tidak valid
(W kelebihan beban) Pragma kelebihan muatan diberikan argumen yang tidak dikenalinya. Apakah kamu
salah ketik operator?
Dereference yang kelebihan beban tidak mengembalikan referensi
(F) Sebuah objek dengan operator dereferensi kelebihan beban didereferensi, tetapi
operasi kelebihan beban tidak mengembalikan referensi. Lihat kelebihan beban.
qr yang kelebihan beban tidak mengembalikan REGEXP
(F) Sebuah objek dengan kelebihan "qr" digunakan sebagai bagian dari pertandingan, tetapi kelebihan beban
operasi tidak mengembalikan regexp yang dikompilasi. Lihat kelebihan beban.
Atribut paket %s mungkin berbenturan dengan kata cadangan di masa mendatang: %s
(W reserved) Nama atribut huruf kecil digunakan yang memiliki handler khusus paket.
Nama itu mungkin memiliki arti bagi Perl sendiri suatu hari nanti, meskipun belum.
Mungkin Anda harus menggunakan nama atribut kasus campuran. Lihat atribut.
bungkus/bongkar jumlah pengulangan yang melimpah
(F) Anda tidak dapat menentukan jumlah pengulangan yang begitu besar sehingga melebihi bilangan bulat yang Anda tandatangani.
Lihat "paket" di perlfunc.
halaman meluap
(W io) Satu panggilan ke menulis() menghasilkan lebih banyak baris daripada yang dapat ditampung pada satu halaman. Lihat
melakukan.
panik: %s
(P) Kesalahan internal.
panik: coba panggil %s di %s
(P) Salah satu operator pengujian file memasukkan cabang kode yang memanggil ACL terkait-
fungsi, tetapi fungsi itu tidak tersedia di platform ini. Pemeriksaan sebelumnya berarti
bahwa tidak mungkin untuk memasuki cabang ini di platform ini.
panik: proses semu anak tidak pernah dijadwalkan
(P) Proses semu anak dalam implementasi itthreads di Windows tidak dijadwalkan
dalam jangka waktu yang diizinkan dan oleh karena itu tidak dapat diinisialisasi dengan benar.
panik: ck_grep, ketik=%u
(P) Gagal dalam pemeriksaan konsistensi internal saat mencoba mengkompilasi grep.
panik: ck_split, ketik=%u
(P) Gagal dalam pemeriksaan konsistensi internal saat mencoba mengkompilasi pemisahan.
panik: indeks tumpukan tersimpan rusak %ld
(P) Savestack diminta untuk mengembalikan nilai yang lebih terlokalisasi daripada yang ada di
simpanan
panik: del_backref
(P) Gagal dalam pemeriksaan konsistensi internal saat mencoba mengatur ulang referensi yang lemah.
panik: mati %s
(P) Kami memunculkan tumpukan konteks ke konteks eval, dan kemudian menemukan itu bukan
konteks evaluasi.
panik: do_subst
(P) Bagian dalam pp_subst() rutin dipanggil dengan data operasional yang tidak valid.
panik: do_trans_%s
(P) Rutinitas internal do_trans dipanggil dengan data operasional yang tidak valid.
panik: fold_constants JMPENV_PUSH mengembalikan %d
(P) Saat mencoba melipat konstanta, pengecualian selain kegagalan "eval" adalah
tertangkap.
panik: frexp: %f
(P) Fungsi perpustakaan freks() gagal, membuat printf("%f") tidak mungkin.
panik: goto, ketik=%u, ix=%ld
(P) Kami memunculkan tumpukan konteks ke konteks dengan label yang ditentukan, dan kemudian
menemukan itu bukan konteks yang kita tahu bagaimana melakukan goto.
panik: gp_free gagal membebaskan penunjuk glob
(P) Rutin internal yang digunakan untuk menghapus entri typeglob dicoba berulang kali, tetapi masing-masing
waktu sesuatu kembali dibuat entri dalam glob. Kemungkinan besar glob tersebut berisi
objek dengan referensi kembali ke glob dan destruktor yang menambahkan objek baru ke
bola.
panik: INTERPCASEMOD, %s
(P) Lexer mengalami kondisi buruk pada pengubah kasus.
panik: INTERPCONCAT, %s
(P) Lexer mengalami kondisi buruk saat mengurai string dengan tanda kurung.
panik: anak popen errno read
(F) Anak bercabang mengembalikan pesan yang tidak dapat dipahami tentang kesalahannya.
panik: terakhir, ketik=%u
(P) Kami memunculkan tumpukan konteks ke konteks blok, dan kemudian menemukan itu bukan
konteks blok.
panik: leave_scope clearsv
(P) Variabel leksikal yang dapat ditulis menjadi read-only entah bagaimana dalam lingkup.
panik: inkonsistensi leave_scope %u
(P) Savestack mungkin tidak sinkron. Setidaknya, ada enum yang tidak valid di
bagian atasnya.
panik: magic_killbackrefs
(P) Gagal dalam pemeriksaan konsistensi internal saat mencoba mengatur ulang semua referensi yang lemah ke
Sebuah Objek.
panik: malloc, %s
(P) Sesuatu meminta jumlah byte malloc yang negatif.
panik: bungkus memori
(P) Sesuatu mencoba mengalokasikan lebih banyak memori daripada yang mungkin atau jumlah yang negatif.
panik: pad_alloc, %p!=%p
(P) Kompiler menjadi bingung tentang coretan mana yang dialokasikan dan dibebaskan
temporer dan leksikal dari.
panik: pad_free curpad, %p!=%p
(P) Kompiler menjadi bingung tentang coretan mana yang dialokasikan dan dibebaskan
temporer dan leksikal dari.
panik: pad_free po
(P) Offset bantalan gores nol terdeteksi secara internal. Sebuah upaya dilakukan untuk membebaskan
target yang tidak dialokasikan untuk memulai.
panik: pad_reset curpad, %p!=%p
(P) Kompiler menjadi bingung tentang coretan mana yang dialokasikan dan dibebaskan
temporer dan leksikal dari.
panik: pad_sv po
(P) Offset bantalan gores nol terdeteksi secara internal. Kemungkinan besar dibutuhkan operator
target tetapi target itu tidak dialokasikan untuk alasan apa pun.
panik: pad_swipe curpad, %p!=%p
(P) Kompiler menjadi bingung tentang coretan mana yang dialokasikan dan dibebaskan
temporer dan leksikal dari.
panik: pad_swipe po
(P) Offset bantalan gores yang tidak valid terdeteksi secara internal.
panik: pp_iter, ketik=%u
(P) Iterator foreach dipanggil dalam bingkai konteks non-loop.
panik: pp_match%s
(P) Bagian dalam pp_cocok() rutin dipanggil dengan data operasional yang tidak valid.
panik: pp_split, pm=%p, s=%p
(P) Ada yang tidak beres dalam menyiapkan perpecahan.
panik: alokasi ulang, %s
(P) Sesuatu meminta jumlah byte realoc negatif.
panik: referensi salah hitung di nsv in sv_ganti() (%d != 1)
(P) Bagian dalam sv_ganti() fungsi diberikan SV baru dengan jumlah referensi
selain 1.
panik: mulai ulang di %s
(P) Beberapa rutinitas internal meminta goto (atau semacamnya), dan tidak menyediakan
tempat tujuan.
panik: kembali, ketik=%u
(P) Kami memunculkan tumpukan konteks ke subrutin atau konteks evaluasi, dan kemudian menemukan
itu bukan konteks subrutin atau evaluasi.
panik: scan_num, %s
(P) pindaian_num() dipanggil pada sesuatu yang bukan nomor.
panik: Urutan (?{...}): tidak ada blok kode yang ditemukan di regex m/%s/
(P) Saat mengompilasi pola yang telah menyematkan blok kode (?{}) atau (??{}), perl
tidak dapat menemukan blok kode yang seharusnya sudah dilihat dan dikompilasi oleh perl
sebelum kontrol diteruskan ke kompiler regex.
panik: strxfrm() menjadi tidak masuk akal - a => %u, ab => %u
(P) Pemeriksaan kewarasan penerjemah dari fungsi C strxfrm() gagal. di kamu
lokal saat ini, transformasi yang dikembalikan dari string "ab" lebih pendek dari pada
string "a", yang tidak masuk akal.
panik: sv_chop %s
(P) sv_chop() rutin melewati posisi yang tidak berada dalam string skalar
penyangga.
panik: sv_insert, midend=%p, bigend=%p
(P) sv_masukkan() rutin diberitahu untuk menghapus lebih banyak string daripada string.
panik: top_env
(P) Kompilator mencoba melakukan goto, atau sesuatu yang aneh seperti itu.
panik: operasi %s yang tidak diimplementasikan (#%d) disebut
(P) Kompilator kacau dan berusaha menggunakan operasi yang tidak diizinkan saat dijalankan
waktu.
panik: utf16_to_utf8: byte ganjil
(P) Sesuatu mencoba memanggil utf16_to_utf8 dengan byte ganjil (bukan genap)
panjangnya.
panik: utf16_to_utf8_reversed: byte ganjil
(P) Sesuatu mencoba memanggil utf16_to_utf8_reversed dengan ganjil (sebagai lawan genap)
panjang byte.
panik: yylex, %s
(P) Lexer mengalami kondisi buruk saat memproses pengubah kasus.
Tanda kurung hilang di sekitar daftar "%s"
(Kurung W) Anda mengatakan sesuatu seperti
$foo saya, $bar = @_;
kapan maksudmu
saya ($foo, $bar) = @_;
Ingat bahwa "saya", "kami", "lokal" dan "negara bagian" mengikat lebih erat daripada koma.
Kesalahan internal penguraian kode (%s)
(F) Kode penguraian yang diberikan oleh ekstensi melanggar API pengurai dalam cara yang dapat dideteksi
cara.
Meneruskan UTF-8 yang salah format ke "%s" tidak digunakan lagi
(D usang, utf8) Pesan ini menunjukkan bug baik di inti Perl atau di XS
kode. Kode tersebut mencoba mencari tahu apakah suatu karakter, diduga disimpan secara internal
dikodekan sebagai UTF-8, dari jenis tertentu, seperti tanda baca atau angka. Tetapi
karakter tidak dikodekan dalam UTF-8 legal. %s diganti dengan string yang dapat
digunakan oleh orang-orang yang berpengetahuan untuk menentukan jenis apa yang diperiksa. Jika
Peringatan "utf8" diaktifkan, pesan lebih lanjut dimunculkan, memberikan rincian
cacat.
Bersarang subrutin pola tanpa perubahan pos melebihi batas di regex
(F) Anda menggunakan pola yang menggunakan terlalu banyak panggilan subpola bersarang tanpa menggunakan
teks apapun. Restrukturisasi pola sehingga teks dikonsumsi sebelum batas bersarang adalah
Terlampaui.
"-p" tujuan: %s
(F) Terjadi kesalahan selama output implisit yang dipanggil oleh baris perintah "-p"
mengalihkan. (Output ini masuk ke STDOUT kecuali Anda telah mengarahkannya dengan Pilih().)
Perl API versi %s dari %s tidak cocok dengan %s
(F) Modul XS yang dimaksud dikompilasi dengan versi berbeda yang tidak kompatibel dari
Perl daripada yang telah memuat modul XS.
Aturan lipat Perl tidak mutakhir untuk 0x%X; silakan gunakan utilitas perlbug untuk melaporkan;
dalam ekspresi reguler; ditandai dengan <-- DI SINI dalam m/%s/
(S regexp) Anda menggunakan ekspresi reguler dengan pencocokan case-insensitive, dan ada
bug di Perl di mana aturan pelipatan ekspresi reguler bawaan tidak akurat.
Ini dapat menyebabkan hasil yang salah. Harap laporkan ini sebagai bug menggunakan perlbug
utilitas
Lapisan PerlIO ':win32' adalah eksperimental
(S eksperimental::win32_perlio) Lapisan PerlIO ":win32" bersifat eksperimental. jika kamu mau
untuk mengambil risiko menggunakan lapisan ini, cukup nonaktifkan peringatan ini:
tidak ada peringatan "eksperimental::win32_perlio";
Perl_my_%s() tidak tersedia
(F) Platform Anda memiliki urutan byte dan ukuran bilangan bulat yang sangat tidak biasa, jadi bukan
memungkinkan untuk mengatur beberapa atau semua fungsi konversi urutan byte dengan lebar tetap. Ini
hanya masalah ketika Anda menggunakan pengubah '<' atau '>' di (membuka) templat paket. Lihat
"paket" di perlfunc.
Perl %s diperlukan (apa maksud Anda %s?)--ini hanya %s, dihentikan
(F) Kode yang Anda coba jalankan telah meminta versi Perl yang lebih baru daripada Anda
berlari. Mungkin "gunakan 5.10" ditulis sebagai ganti "gunakan 5.010" atau "gunakan v5.10".
Tanpa awalan "v", angka tersebut ditafsirkan sebagai desimal, dengan setiap tiga
digit setelah titik desimal yang mewakili bagian dari nomor versi. Jadi 5.10 adalah
setara dengan v5.100.
Perl %s diperlukan--ini hanya %s, dihentikan
(F) Modul yang dimaksud menggunakan fitur versi Perl yang lebih baru daripada
versi yang sedang berjalan. Sudah berapa lama sejak Anda meningkatkannya? Lihat
"membutuhkan" di perlfunc.
PERL_SH_DIR terlalu panjang
(F) Kesalahan khusus untuk OS/2. PERL_SH_DIR adalah direktori untuk menemukan "sh"-shell
di. Lihat "PERL_SH_DIR" di perlos2.
PERL_SIGNALS ilegal: "%s"
(X) Lihat "PERL_SIGNALS" di perlrun untuk nilai legal.
Perls karena %s terlalu modern--ini %s, dihentikan
(F) Kode yang Anda coba jalankan mengklaim itu tidak akan berjalan pada versi Perl Anda
digunakan karena terlalu baru. Mungkin kodenya perlu diperbarui, atau mungkin
hanya salah dan pemeriksaan versi harus dihapus saja.
perl: peringatan: Karakter non-hex di '$ENV{PERL_HASH_SEED}', seed hanya disetel sebagian
(S) PERL_HASH_SEED harus cocok dengan /^\s*(?:0x)?[0-9a-fA-F]+\s*\z/ tetapi berisi non
karakter heksagonal. Ini bisa berarti Anda tidak menggunakan benih hash yang Anda pikirkan.
perl: peringatan: Pengaturan lokal gagal.
(S) Seluruh pesan peringatan akan terlihat seperti:
perl: peringatan: Pengaturan lokal gagal.
perl: warning: Harap periksa apakah pengaturan lokal Anda:
LC_ALL = "En_US",
LANG = (tidak disetel)
didukung dan diinstal pada sistem Anda.
perl: warning: Kembali ke lokal standar ("C").
Persisnya apa saja pengaturan lokal yang gagal bervariasi. Dalam pengaturan di atas adalah
bahwa LC_ALL adalah "En_US" dan LANG tidak memiliki nilai. Kesalahan ini berarti Perl
mendeteksi bahwa Anda dan/atau pemasok sistem operasi dan/atau administrator sistem Anda
telah menyiapkan apa yang disebut sistem lokal tetapi Perl tidak dapat menggunakan pengaturan tersebut. Ini
tidak terlalu serius, untungnya: ada "lokal default" yang disebut "C" yang Perl
dapat dan akan digunakan, dan skrip akan dijalankan. Sebelum Anda benar-benar memperbaiki masalah,
namun, Anda akan mendapatkan pesan kesalahan yang sama setiap kali Anda menjalankan Perl. Bagaimana caranya?
memperbaiki masalah dapat ditemukan di bagian perlllocale LOKAL MASALAH.
perl: peringatan: pengaturan aneh di '$ENV{PERL_PERTURB_KEYS}': '%s'
(S) Perl dijalankan dengan variabel lingkungan PERL_PERTURB_KEYS didefinisikan tetapi
mengandung nilai yang tidak terduga. Nilai hukum dari pengaturan ini adalah sebagai berikut.
Numerik | String | Hasil
--------+---------------+------------------------ ----------------
0 | TIDAK | Nonaktifkan pengacakan traversal kunci
1 | RANDOM | Mengaktifkan pengacakan traversal kunci penuh
2 | DETERMINISTIK | Memungkinkan traversal kunci berulang
| | pengacakan
Nilai numerik dan string diterima, tetapi perhatikan bahwa nilai string adalah huruf besar/kecil
peka. Default untuk pengaturan ini adalah "RANDOM" atau 1.
pid %x bukan anak-anak
(W exec) Peringatan khusus untuk VMS. tunggu() diminta untuk menunggu proses yang
bukan subproses dari proses saat ini. Meskipun ini baik-baik saja dari perspektif VMS,
itu mungkin bukan yang Anda maksudkan.
'P' harus memiliki ukuran eksplisit saat dibongkar
(F) Format unpack P harus memiliki ukuran eksplisit, bukan "*".
pop pada referensi adalah eksperimental
(S eksperimental::autoderef) "pop" dengan argumen skalar adalah eksperimental dan mungkin
mengubah atau dihapus dalam versi Perl mendatang. Jika Anda ingin mengambil risiko menggunakan
fitur ini, cukup nonaktifkan peringatan ini:
tidak ada peringatan "eksperimental::autoderef";
kelas POSIX [:%s:] tidak dikenal di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Kelas dalam sintaks kelas karakter [::] tidak diketahui. <-- SINI menunjukkan
keberadaan dalam ekspresi reguler masalah ditemukan. Perhatikan bahwa POSIX
kelas karakter lakukan tidak memiliki awalan "adalah" yang dimiliki antarmuka C yang sesuai: in
dengan kata lain, itu "[[:print:]]", bukan "isprint". Lihat perlre.
POSIX getpgrp tidak dapat menerima argumen
(F) Sistem Anda memiliki POSIX dapatkanpgrp(), yang tidak membutuhkan argumen, tidak seperti versi BSD,
yang mengambil pid.
Sintaks POSIX [%c %c] termasuk dalam kelas karakter di regex; ditandai dengan <-- DI SINI di
MS/
(W regexp) Kelas karakter mengkonstruksi [: :], [= =], dan [. .] Pergilah dalam karakter
kelas, [] adalah bagian dari konstruk, misalnya: /[012[:alpha:]345]/. Note
bahwa [= =] dan [. .] saat ini tidak diimplementasikan; mereka hanyalah pengganti untuk
ekstensi masa depan dan akan menyebabkan kesalahan fatal. <-- SINI menunjukkan keberadaan di
ekspresi reguler masalah ditemukan. Lihat perlre.
Sintaks POSIX [. .] dicadangkan untuk ekstensi mendatang di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Dalam kelas karakter ekspresi reguler ([]) sintaks dimulai dengan "[."
dan diakhiri dengan ".]" dicadangkan untuk ekstensi mendatang. Jika Anda perlu untuk mewakili
urutan karakter itu di dalam kelas karakter ekspresi reguler, cukup kutip
tanda kurung siku dengan garis miring terbalik: "\[." dan ".\]". <-- SINI menunjukkan keberadaan
dalam ekspresi reguler masalahnya ditemukan. Lihat perlre.
Sintaks POSIX [= =] dicadangkan untuk ekstensi mendatang di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Dalam kelas karakter ekspresi reguler ([]) sintaks yang dimulai dengan "[="
dan diakhiri dengan "=]" dicadangkan untuk ekstensi mendatang. Jika Anda perlu untuk mewakili
urutan karakter itu di dalam kelas karakter ekspresi reguler, cukup kutip
kurung siku dengan garis miring terbalik: "\[=" dan "=\]". <-- SINI menunjukkan keberadaan
dalam ekspresi reguler masalahnya ditemukan. Lihat perlre.
Kemungkinan upaya untuk memasukkan komentar qw() daftar
(Wqw) qw() daftar berisi item yang dipisahkan oleh spasi; seperti halnya string literal,
karakter komentar tidak diabaikan, tetapi diperlakukan sebagai data literal. (Kamu boleh
telah menggunakan pembatas yang berbeda dari tanda kurung yang ditunjukkan di sini; kawat gigi juga
sering digunakan.)
Anda mungkin menulis sesuatu seperti ini:
@daftar = qw(
sebuah #komentar
b # komentar lain
);
ketika Anda seharusnya menulis ini:
@daftar = qw(
a
b
);
Jika Anda benar-benar ingin komentar, buat daftar Anda dengan cara kuno, dengan kutipan dan
koma:
@daftar = (
'a', # sebuah komentar
'b', # komentar lain
);
Kemungkinan upaya untuk memisahkan kata dengan koma
(Wqw) qw() daftar berisi item yang dipisahkan oleh spasi; oleh karena itu koma tidak
diperlukan untuk memisahkan item. (Anda mungkin telah menggunakan pembatas yang berbeda dari
tanda kurung ditampilkan di sini; kawat gigi juga sering digunakan.)
Anda mungkin menulis sesuatu seperti ini:
qw! a, b, c!;
yang menempatkan koma literal ke dalam beberapa item daftar. Tulis tanpa koma jika Anda
tidak ingin mereka muncul di data Anda:
qw! abc!;
Kemungkinan kerusakan memori: %s meluap argumen ke-3
(Penggemar ioctl() or fcntl() mengembalikan lebih dari yang ditawarkan Perl. Perl menebak
ukuran buffer yang masuk akal, tetapi menempatkan byte sentinel di akhir buffer tepat di
kasus. Byte penjaga ini menjadi rusak, dan Perl mengasumsikan bahwa memori sekarang
rusak. Lihat "ioctl" di perlfunc.
Kemungkinan masalah prioritas dengan operator aliran kontrol
(Sintaks W) Ada kemungkinan masalah dengan pencampuran operator aliran kontrol
(misalnya "kembali") dan operator dengan prioritas rendah seperti "atau". Mempertimbangkan:
sub { kembali $a atau $b; }
Ini diuraikan sebagai:
sub { (kembalikan $a) atau $b; }
Yang secara efektif hanya:
sub { kembali $a; }
Gunakan tanda kurung atau varian operator dengan prioritas tinggi.
Perhatikan ini mungkin juga dipicu untuk konstruksi seperti:
sub { 1 jika mati; }
Kemungkinan masalah prioritas pada operator %s bitwise
(Diutamakan W) Program Anda menggunakan operator logika bitwise bersama dengan a
operator perbandingan numerik, seperti ini:
if ($x & $y == 0) { ... }
Ekspresi ini sebenarnya setara dengan "$x & ($y == 0)", karena semakin tinggi
didahulukan dari "==". Ini mungkin bukan yang Anda inginkan. (Jika Anda benar-benar bermaksud
tulis ini, nonaktifkan peringatan, atau, lebih baik, letakkan tanda kurung secara eksplisit dan tulis
"$x & ($y == 0)").
Kemungkinan interpolasi yang tidak diinginkan dari $\ di regex
(W ambigu) Anda mengatakan sesuatu seperti "m/$\/" di regex. Ekspresi reguler "m/foo$\s+bar/m"
diterjemahkan menjadi: cocok dengan kata 'foo', pemisah catatan keluaran (lihat "$\" di perlvar)
dan huruf 's' (satu kali atau lebih) diikuti kata 'bar'.
Jika ini yang Anda maksud, Anda dapat menonaktifkan peringatan dengan menggunakan "m/${\}/" (untuk
contoh: "m/foo${\}s+bar/").
Jika sebaliknya Anda bermaksud mencocokkan kata 'foo' di akhir baris diikuti oleh
spasi dan kata 'bar' pada baris berikutnya maka Anda dapat menggunakan "m/$(?)\/" (untuk
contoh: "m/foo$(?)\s+bar/").
Kemungkinan interpolasi yang tidak diinginkan dari %s dalam string
(W ambigu) Anda mengatakan sesuatu seperti '@foo' dalam string yang dikutip ganda tetapi ada
tidak ada array @foo dalam ruang lingkup pada saat itu. Jika Anda menginginkan @foo literal, tulis sebagai
\@aduh; jika tidak, cari tahu apa yang terjadi pada larik yang tampaknya Anda lupa.
Dereferensi Postfix bersifat eksperimental
(S eksperimental::postderef) Peringatan ini dikeluarkan jika Anda menggunakan eksperimental
sintaks dereferensi postfix. Cukup tekan peringatan jika Anda ingin menggunakan
fitur, tetapi ketahuilah bahwa dengan melakukannya Anda mengambil risiko menggunakan eksperimen
fitur yang dapat diubah atau dihapus di versi Perl mendatang:
tidak ada peringatan "eksperimental::postderef";
gunakan fitur "postderef", "postderef_qq";
$ref->$*;
$aref->@*;
$aref->@[@indeks];
... dll ...
Masalah prioritas: buka %s harus terbuka(%s)
(Diutamakan S) Konstruk lama yang tidak beraturan
buka FOO || mati;
sekarang disalahartikan sebagai
buka(FOO || mati);
karena regularisasi ketat tata bahasa Perl 5 menjadi unary dan list
operator. (Bukaan lama adalah sedikit dari keduanya.) Anda harus meletakkan tanda kurung di sekitar
filehandle, atau gunakan operator "atau" baru sebagai ganti "||".
Akhir prematur dari tajuk skrip
Lihat Kesalahan server.
cetakf() pada filehandle tertutup %s
(W ditutup) Filehandle yang Anda tulis akan ditutup sendiri beberapa saat sebelumnya.
Periksa aliran kontrol Anda.
mencetak() pada filehandle tertutup %s
(W ditutup) Pegangan file tempat Anda mencetak telah ditutup beberapa waktu sebelumnya.
Periksa aliran kontrol Anda.
Proses dihentikan oleh SIG%s
(W) Ini adalah pesan standar yang dikeluarkan oleh aplikasi OS/2, sedangkan *nix aplikasi
mati dalam diam. Ini dianggap sebagai fitur port OS/2. Seseorang dapat dengan mudah menonaktifkan
ini oleh sighandlers yang tepat, lihat "Sinyal" di perlipc. Lihat juga "Proses
diakhiri oleh SIGTERM/SIGINT" di perlos2.
Properti '%s' tidak dikenal di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Properti bernama yang Anda tentukan melalui "\p" atau "\P" tidak diketahui oleh Perl.
Mungkin Anda salah mengeja nama? Lihat "Properti yang dapat diakses melalui \p{} dan \P{}" di
perluniprops untuk daftar lengkap properti resmi yang tersedia. Jika itu adalah pengguna-
properti yang ditentukan itu harus didefinisikan pada saat ekspresi reguler adalah
disusun.
Prototipe setelah '%c' untuk %s : %s
(W illegalproto) Sebuah karakter mengikuti % atau @ dalam sebuah prototipe. Ini tidak berguna, karena %
dan @ melahap sisa argumen subrutin.
Ketidakcocokan prototipe: %s vs %s
(S prototype) Subrutin yang dideklarasikan atau didefinisikan sebelumnya telah dideklarasikan atau
didefinisikan dengan prototipe fungsi yang berbeda.
Prototipe tidak dihentikan
(F) Anda telah menghilangkan tanda kurung penutup dalam definisi prototipe fungsi.
Prototipe '%s' diganti dengan atribut 'prototipe(%s)' di %s
(Prototipe W) Sebuah prototipe dideklarasikan dalam kedua tanda kurung setelah nama sub dan
melalui atribut prototipe. Prototipe dalam tanda kurung tidak berguna, karena akan
digantikan oleh prototipe dari atribut sebelum digunakan.
push on reference bersifat eksperimental
(S eksperimental::autoderef) "push" dengan argumen skalar adalah eksperimental dan mungkin
mengubah atau dihapus dalam versi Perl mendatang. Jika Anda ingin mengambil risiko menggunakan
fitur ini, cukup nonaktifkan peringatan ini:
tidak ada peringatan "eksperimental::autoderef";
Quantifier tidak mengikuti apa pun di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda memulai ekspresi reguler dengan quantifier. Garis miring terbalik jika Anda bersungguh-sungguh
secara harfiah. <-- HERE menunjukkan keberadaan dalam ekspresi reguler masalahnya adalah
telah menemukan. Lihat perlre.
Quantifier di {,} lebih besar dari %d di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Saat ini ada batasan ukuran nilai min dan max dari {min,max}
membangun. <-- HERE menunjukkan keberadaan dalam ekspresi reguler masalahnya adalah
telah menemukan. Lihat perlre.
Penghitung {n,m} dengan n > m tidak dapat dicocokkan dengan ekspresi reguler
Penghitung {n,m} dengan n > m tidak dapat dicocokkan dengan ekspresi reguler; ditandai dengan <-- DI SINI dalam m/%s/
(W regexp) Minima harus kurang dari atau sama dengan maxima. Jika Anda benar-benar menginginkan
regexp untuk mencocokkan sesuatu 0 kali, cukup masukkan {0}.
Quantifier tidak terduga pada ekspresi panjang nol di regex m/%s/
(W regexp) Anda menerapkan penghitung ekspresi reguler di tempat yang tidak menghasilkan
akal, seperti pada pernyataan lebar-nol. Coba letakkan quantifier di dalam
pernyataan sebagai gantinya. Misalnya, cara mencocokkan "abc" asalkan diikuti
dengan tiga pengulangan "xyz" adalah "/abc(?=(?:xyz){3})/", bukan "/abc(?=xyz){3}/".
Rentang iterator di luar rentang bilangan bulat
(F) Satu (atau keduanya) argumen numerik ke operator rentang ".." berada di luar
rentang yang dapat diwakili oleh bilangan bulat internal. Salah satu solusi yang mungkin adalah dengan
paksa Perl untuk menggunakan peningkatan string ajaib dengan menambahkan "0" ke nomor Anda.
Rentang ASCII yang dapat dicetak harus berupa subset dari "0-9", "AZ", atau "az" di regex;
ditandai dengan <-- DI SINI dalam m/%s/
(W regexp) (hanya di bawah "use re 'strict'" atau di dalam "(?[...])")
Aturan yang lebih ketat membantu menemukan kesalahan ketik dan kesalahan lainnya. Mungkin Anda bahkan tidak berniat
rentang di sini, jika "-" dimaksudkan sebagai karakter lain, atau seharusnya
lolos (seperti "\-"). Jika Anda memang menginginkan jangkauan, yang digunakan tidak portabel
antara ASCII dan EBCDIC platform, dan tidak memiliki arti yang jelas untuk kasual
pembaca.
[3-7] # Oke; Jelas dan portabel
[dg] # Oke; Jelas dan portabel
[AY] # Oke; Jelas dan portabel
[Az] # SALAH; Tidak portabel; kurang jelas maksudnya
[aZ] # SALAH; Tidak portabel; kurang jelas maksudnya
[%-.] # SALAH; Tidak portabel; kurang jelas maksudnya
[\x41-Z] # SALAH; Tidak portabel; tidak jelas bagi non-geek
(Anda dapat memaksakan portabilitas dengan menentukan rentang Unicode, yang berarti bahwa
titik akhir ditentukan oleh "\N{...}", tetapi artinya mungkin masih belum jelas.) The
aturan yang lebih ketat mengharuskan rentang yang dimulai atau dihentikan dengan karakter ASCII yaitu
bukan kontrol yang semua titik akhirnya menjadi karakter literal, dan bukan pelarian
urutan (seperti "\x41"), dan rentangnya harus semua digit, atau semua huruf besar,
atau semua huruf kecil.
Rentang digit harus dari grup yang sama di regex; ditandai dengan <-- DI SINI dalam m/%s/
(W regexp) (hanya di bawah "use re 'strict'" atau di dalam "(?[...])")
Aturan yang lebih ketat membantu menemukan kesalahan ketik dan kesalahan lainnya. Anda memasukkan rentang, dan di
setidaknya salah satu titik akhir adalah angka desimal. Di bawah aturan yang lebih ketat, saat ini
terjadi, kedua titik akhir harus digit dalam kelompok yang sama dari 10 digit berturut-turut.
bacadir() mencoba dirhandle yang tidak valid %s
(W io) Dirhandle yang Anda baca entah tertutup atau tidak benar-benar dirhandle.
Periksa aliran kontrol Anda.
garis baca() pada filehandle tertutup %s
(W ditutup) Pegangan file tempat Anda membaca telah ditutup beberapa waktu sebelumnya.
Periksa aliran kontrol Anda.
Baca() pada filehandle tertutup %s
(W ditutup) Anda mencoba membaca dari filehandle tertutup.
Baca() pada filehandle yang belum dibuka %s
(W belum dibuka) Anda mencoba membaca dari pegangan file yang tidak pernah dibuka.
Realokasi terlalu besar: %x
(F) Anda tidak dapat mengalokasikan lebih dari 64K pada mesin MS-DOS.
alokasi ulang() memori yang dibebaskan diabaikan
(S malloc) Rutinitas internal yang disebut alokasi ulang() pada sesuatu yang sudah ada
dibebaskan.
Kompilasi ulang perl dengan -DDEBUGGING untuk digunakan -D saklar
(S debugging) Anda tidak dapat menggunakan -D pilihan kecuali kode untuk menghasilkan yang diinginkan
output dikompilasi ke dalam Perl, yang memerlukan beberapa overhead, itulah sebabnya saat ini
tertinggal dari salinan Anda.
Panggilan rekursif ke Perl_load_module di PerlIO_find_layer
(P) Saat ini tidak diizinkan untuk memuat modul saat membuat pegangan file di dalam
%INC kait. Ini dapat terjadi dengan "buka $fh saya, '<', \$scalar", yang secara implisit memuat
PerlIO::scalar. Coba muat PerlIO::scalar secara eksplisit terlebih dahulu.
Warisan rekursif terdeteksi dalam paket '%s'
(F) Saat menghitung urutan resolusi metode (MRO) dari sebuah paket, Perl percaya itu
menemukan loop tak terbatas dalam hierarki @ISA. Ini adalah cek kasar yang menyelamatkan
setelah 100 level kedalaman @ISA.
Argumen berlebihan dalam %s
(W berlebihan) Anda memanggil fungsi dengan lebih banyak argumen daripada argumen lain yang Anda
disediakan ditunjukkan akan dibutuhkan. Saat ini hanya dipancarkan ketika format tipe printf
membutuhkan lebih sedikit argumen daripada yang diberikan, tetapi mungkin digunakan di masa depan untuk mis
"paket" di perlfunc.
refcnt_dec: fd %d%s
referensi: fd %d%s
refcnt_inc: fd %d%s
(P) Implementasi I/O Perl gagal dalam pemeriksaan konsistensi internal. Jika Anda melihat ini
pesan, ada sesuatu yang sangat salah.
Referensi ditemukan di tempat yang diharapkan oleh daftar berukuran genap
(W misc) Anda memberikan satu referensi di mana Perl mengharapkan daftar dengan genap
jumlah elemen (untuk penugasan ke hash). Ini biasanya berarti Anda menggunakan
anon hash constructor ketika Anda bermaksud menggunakan parens. Bagaimanapun, hash membutuhkan
kunci/nilai pasang.
%hash = { satu => 1, dua => 2, }; # SALAH
%hash = [ qw/ anon array / ]; # SALAH
%hash = ( satu => 1, dua => 2, ); # Baik
%hash = qw( satu 1 dua 2 ); # juga baik-baik saja
Referensi sudah lemah
(W misc) Anda telah mencoba untuk melemahkan referensi yang sudah lemah. Melakukannya memiliki
tidak berpengaruh.
Referensi ke grup 0 yang tidak valid di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menggunakan "\g0" atau yang serupa dalam ekspresi reguler. Anda dapat merujuk ke menangkap
kurung hanya dengan bilangan bulat positif (referensi balik normal) atau dengan
bilangan bulat negatif (referensi balik relatif). Menggunakan 0 tidak masuk akal.
Referensi ke grup yang tidak ada di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menggunakan sesuatu seperti "\7" dalam ekspresi reguler Anda, tetapi tidak ada di
setidaknya tujuh set tanda kurung dalam ekspresi. Jika Anda ingin memiliki
karakter dengan ordinal 7 dimasukkan ke dalam ekspresi reguler, tambahkan nol ke
buat tiga digit panjangnya: "\007"
<-- HERE menunjukkan keberadaan dalam ekspresi reguler masalah ditemukan.
Referensi ke grup bernama tidak ada di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menggunakan sesuatu seperti "\k'NAME'" atau "\k " dalam ekspresi regulermu, tapi
tidak ada tanda kurung penangkap bernama yang sesuai seperti "(?'NAME'...)" atau
"(? ...)". Periksa apakah nama telah dieja dengan benar baik di
referensi balik dan deklarasi.
<-- HERE menunjukkan keberadaan dalam ekspresi reguler masalah ditemukan.
Referensi ke grup yang tidak ada atau tidak tertutup di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menggunakan sesuatu seperti "\g{-7}" dalam ekspresi reguler Anda, tetapi tidak ada di
setidaknya tujuh set kurung penangkap tertutup dalam ekspresi sebelum di mana
"\g{-7}" telah ditemukan.
<-- HERE menunjukkan keberadaan dalam ekspresi reguler masalah ditemukan.
kerusakan memori regexp
(P) Mesin ekspresi reguler menjadi bingung dengan apa yang dikompilasi ekspresi reguler
berikan itu.
Pengubah regexp "/%c" dapat muncul maksimal dua kali
Pengubah regexp "%c" dapat muncul maksimal dua kali di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Pola ekspresi reguler memiliki terlalu banyak kemunculan pengubah yang ditentukan.
Hapus yang asing.
Pengubah regexp "%c" mungkin tidak muncul setelah "-" di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Mematikan pengubah yang diberikan memiliki efek samping menyalakan yang lain.
Perl saat ini tidak mengizinkan ini. Tulis ulang ekspresi reguler untuk menggunakan pengubah
Anda ingin mengaktifkan (dan menempatkannya sebelum minus), alih-alih yang Anda inginkan
matikan.
Pengubah regexp "/%c" mungkin tidak muncul dua kali
Pengubah regexp "%c" mungkin tidak muncul dua kali di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Pola ekspresi reguler memiliki terlalu banyak kemunculan pengubah yang ditentukan.
Hapus yang asing.
Pengubah regexp "/%c" dan "/%c" saling eksklusif
Pengubah regexp "%c" dan "%c" saling eksklusif dalam regex; ditandai dengan <-- DI SINI di
MS/
(F) Pola ekspresi reguler memiliki lebih dari satu yang saling eksklusif
pengubah. Pertahankan hanya pengubah yang seharusnya ada di sana.
Regexp kehabisan ruang di regex m/%s/
(P) Kesalahan "tidak dapat terjadi", karena safemaloc() seharusnya menangkapnya lebih awal.
Baris format berulang tidak akan pernah berhenti (~~ dan @#)
(F) Format Anda berisi urutan ~~ ulangi sampai kosong dan bidang numerik yang
tidak akan pernah kosong sehingga pengulangan tidak pernah berakhir. Anda mungkin menggunakan ^#
sebagai gantinya. Lihat kinerja.
Daftar pengganti lebih panjang dari daftar pencarian
(W misc) Anda telah menggunakan daftar pengganti yang lebih panjang dari daftar pencarian. Sehingga
elemen tambahan dalam daftar pengganti tidak ada artinya.
'%s' diselesaikan menjadi '\o{%s}%d'
(W misc, regexp) Anda menulis sesuatu seperti "\08", atau "\179" dalam tanda kutip ganda
rangkaian. Semua kecuali digit terakhir diperlakukan sebagai satu karakter, ditentukan dalam oktal.
Digit terakhir adalah karakter berikutnya dalam string. Untuk memberi tahu Perl bahwa ini memang
apa yang Anda inginkan, Anda dapat menggunakan sintaks "\o{}", atau menggunakan tepat tiga digit untuk menentukan
oktal untuk karakter.
Terbalik %s= operator
(Sintaks W) Anda menulis operator penugasan Anda secara terbalik. The = harus selalu datang terakhir,
untuk menghindari ambiguitas dengan operator unary berikutnya.
mundur () mencoba dirhandle yang tidak valid %s
(W io) Dirhandle yang Anda coba lakukan mundur () pada ditutup atau tidak benar-benar a
dirhandle Periksa aliran kontrol Anda.
Skalar bocor: %d
(S internal) Ada yang salah dalam pembukuan skalar internal Perl: tidak semua
variabel skalar tidak dialokasikan pada saat Perl keluar. Apa ini biasanya?
menunjukkan adalah kebocoran memori, yang tentu saja buruk, terutama jika program Perl adalah
dimaksudkan untuk jangka panjang.
Nilai skalar @%s[%s] lebih baik ditulis sebagai $%s[%s]
(Sintaks W) Anda telah menggunakan irisan array (ditunjukkan dengan @) untuk memilih satu elemen dari
sebuah array. Umumnya lebih baik untuk meminta nilai skalar (ditunjukkan dengan $). Itu
perbedaannya adalah $foo[&bar] selalu berperilaku seperti skalar, baik saat menetapkannya
dan saat mengevaluasi argumennya, sementara @foo[&bar] berperilaku seperti daftar saat Anda menetapkan
untuk itu, dan memberikan konteks daftar ke subskripnya, yang dapat melakukan hal-hal aneh jika
Anda hanya mengharapkan satu subskrip.
Di sisi lain, jika Anda benar-benar berharap untuk memperlakukan elemen array sebagai daftar,
Anda perlu melihat cara kerja referensi, karena Perl tidak akan secara ajaib mengonversi
antara skalar dan daftar untuk Anda. Lihat perlref.
Nilai skalar @%s{%s} lebih baik ditulis sebagai $%s{%s}
(Sintaks W) Anda telah menggunakan irisan hash (ditunjukkan dengan @) untuk memilih satu elemen a
hash. Umumnya lebih baik untuk meminta nilai skalar (ditunjukkan dengan $). Itu
perbedaannya adalah $foo{&bar} selalu berperilaku seperti skalar, baik saat menetapkannya
dan saat mengevaluasi argumennya, sementara @foo{&bar} berperilaku seperti daftar saat Anda menetapkan
untuk itu, dan memberikan konteks daftar ke subskripnya, yang dapat melakukan hal-hal aneh jika
Anda hanya mengharapkan satu subskrip.
Di sisi lain, jika Anda benar-benar berharap untuk memperlakukan elemen hash sebagai daftar,
Anda perlu melihat cara kerja referensi, karena Perl tidak akan secara ajaib mengonversi
antara skalar dan daftar untuk Anda. Lihat perlref.
Pola pencarian tidak dihentikan
(F) Lexer tidak bisa menemukan pembatas akhir dari konstruksi // atau m{}. Ingat
bahwa pembatas tanda kurung menghitung tingkat bersarang. Tidak ada "$" terdepan dari a
variabel $m dapat menyebabkan kesalahan ini.
Perhatikan bahwa karena Perl 5.10.0 a // juga dapat menjadi didefinisikan-atau membangun, bukan hanya
pola pencarian kosong. Oleh karena itu kode yang ditulis dalam Perl 5.10.0 atau yang lebih baru yang menggunakan //
sebagai didefinisikan-atau dapat disalahartikan oleh pra-5.10.0 Perls sebagai pencarian yang tidak dihentikan
pola.
pencari() mencoba dirhandle yang tidak valid %s
(W io) Dirhandle yang Anda lakukan a pencari() pada ditutup atau tidak benar-benar a
dirhandle Periksa aliran kontrol Anda.
%cari() pada pegangan file yang belum dibuka
(W belum dibuka) Anda mencoba menggunakan mencari() or pencarian sistem() berfungsi pada filehandle yang
tidak pernah dibuka atau sejak itu ditutup.
pilih tidak diterapkan
(F) Mesin ini tidak menerapkan Pilih() panggilan sistem.
Ikatan diri dari array dan hash tidak didukung
(F) Self-ties adalah array dan hash tidak didukung saat ini
implementasi.
Titik koma tampaknya hilang
(Titik koma W) Kesalahan sintaksis di sekitar mungkin disebabkan oleh titik koma yang hilang, atau
mungkin beberapa operator lain yang hilang, seperti koma.
semi-panik: mencoba menipu string yang dibebaskan
(S internal) Internal baruSVsv() rutin dipanggil untuk menduplikasi skalar yang memiliki
sebelumnya telah ditandai sebagai gratis.
sem%s tidak diterapkan
(F) Anda tidak memiliki Sistem V semaphore IPC di sistem Anda.
Kirim() pada soket tertutup %s
(W tertutup) Soket yang Anda kirim ditutup sendiri beberapa saat sebelumnya. Memeriksa
aliran kontrol Anda.
Urutan "\c{" tidak valid
(F) Ketiga karakter ini mungkin tidak muncul secara berurutan dalam konteks tanda kutip ganda.
Pesan ini dimunculkan hanya pada platform non-ASCII (pesan kesalahan yang berbeda adalah
output pada yang ASCII). Jika Anda berniat untuk menentukan karakter kontrol dengan ini
urutan, Anda harus menggunakan cara berbeda untuk menentukannya.
Urutan (? tidak lengkap dalam regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Ekspresi reguler diakhiri dengan ekstensi yang tidak lengkap (?. <-- HERE menunjukkan
keberadaan dalam ekspresi reguler masalah ditemukan. Lihat perlre.
Urutan (?%c...) tidak diimplementasikan di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Ekstensi ekspresi reguler yang diusulkan memiliki karakter yang dicadangkan tetapi belum
telah ditulis. <-- HERE menunjukkan keberadaan dalam ekspresi reguler masalahnya
telah ditemukan. Lihat perlre.
Urutan (?%s...) tidak dikenali dalam ekspresi reguler; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menggunakan ekstensi ekspresi reguler yang tidak masuk akal. <-- DI SINI
menunjukkan keberadaan dalam ekspresi reguler masalah ditemukan. Ini mungkin
terjadi ketika menggunakan konstruksi "(?^...)" untuk memberi tahu Perl agar menggunakan reguler default
pengubah ekspresi, dan Anda secara berlebihan menentukan pengubah default. Untuk yang lain
penyebab, lihat perlre.
Urutan (?#... tidak diakhiri di regex m/%s/
(F) Komentar ekspresi reguler harus diakhiri dengan tanda kurung tutup.
Tanda kurung yang disematkan tidak diizinkan. Lihat perlre.
Urutan (?&... tidak diakhiri dengan ekspresi reguler; ditandai dengan <-- DI SINI dalam m/%s/
(F) Referensi bernama dari formulir "(?&...)" tidak memiliki tanda kurung penutup terakhir
setelah nama. <-- HERE menunjukkan keberadaan dalam ekspresi reguler masalahnya
telah ditemukan.
Urutan (?%c... tidak diakhiri dalam ekspresi reguler; ditandai dengan <-- DI SINI dalam m/%s/
(F) Grup bernama dalam bentuk "(?'...')" atau "(?<...>)" tidak memiliki penutup akhir
kutipan atau kurung sudut. <-- HERE menunjukkan keberadaan dalam ekspresi reguler the
masalah ditemukan.
Urutan (?(%c... tidak diakhiri dalam ekspresi reguler; ditandai dengan <-- DI SINI dalam m/%s/
(F) Referensi bernama dari bentuk "(?('...')...)" atau "(?(<...>)...)" tidak memiliki
kutipan penutup akhir atau kurung sudut setelah nama. <-- SINI menunjukkan keberadaan
dalam ekspresi reguler masalahnya ditemukan.
Urutan (?... tidak diakhiri dalam ekspresi reguler; ditandai dengan <-- DI SINI dalam m/%s/
(F) Tidak ada tanda kurung penutup yang cocok untuk '('. <-- HERE menunjukkan
keberadaan dalam ekspresi reguler masalah ditemukan.
Urutan \%s... tidak diakhiri di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Ekspresi reguler mengharapkan argumen wajib mengikuti urutan escape
dan ini telah dihilangkan atau salah ditulis.
Urutan (?{...}) tidak diakhiri dengan ')'
(F) Akhir kode perl yang terkandung dalam {...} harus segera diikuti
oleh ')'.
Urutan ?P=... tidak diakhiri di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Referensi bernama dari bentuk "(?P=...)" tidak memiliki tanda kurung penutup terakhir
setelah nama. <-- HERE menunjukkan keberadaan dalam ekspresi reguler masalahnya
telah ditemukan.
Urutan (?R) tidak diakhiri dalam ekspresi reguler m/%s/
(F) Urutan "(?R)" atau "(?0)" dalam ekspresi reguler tidak memiliki final
kurung.
Kesalahan server (alias "Kesalahan 500 Server")
(A) Ini adalah pesan kesalahan yang biasanya terlihat di jendela browser saat mencoba menjalankan a
Program CGI (termasuk SSI) melalui web. Teks kesalahan yang sebenarnya sangat bervariasi dari
server ke server. Varian yang paling sering terlihat adalah "500 Server error", "Metode
(sesuatu) tidak diizinkan", "Dokumen tidak berisi data", "Akhir skrip yang prematur
header", dan "Tidak menghasilkan header yang valid".
Kredensial mikro is a CGI kesalahan, tidak a Perl kesalahan.
Anda perlu memastikan skrip Anda dapat dieksekusi, dapat diakses oleh pengguna CGI adalah
menjalankan skrip di bawah (yang mungkin bukan akun pengguna tempat Anda mengujinya),
tidak bergantung pada variabel lingkungan apa pun (seperti PATH) dari pengguna yang tidak dijalankan
di bawah, dan tidak di lokasi di mana server CGI tidak dapat menemukannya, pada dasarnya, lebih atau
lebih sedikit. Silakan lihat berikut untuk informasi lebih lanjut:
http://www.perl.org/CGI_MetaFAQ.html
http://www.htmlhelp.org/faq/cgifaq.html
http://www.w3.org/Security/Faq/
Anda juga harus melihat perlfaq9.
setegid() tidak dilaksanakan
(F) Anda mencoba menetapkan ke $), dan sistem operasi Anda tidak mendukung setegid()
panggilan sistem (atau yang setara), atau setidaknya Konfigurasi tidak berpikir begitu.
seteuid() tidak dilaksanakan
(F) Anda mencoba menetapkan ke $>, dan sistem operasi Anda tidak mendukung seteuid()
panggilan sistem (atau yang setara), atau setidaknya Konfigurasi tidak berpikir begitu.
setpgrp tidak dapat menerima argumen
(F) Sistem Anda memiliki setpgrp() dari BSD 4.2, yang tidak membutuhkan argumen, tidak seperti POSIX
setpgid(), yang mengambil ID proses dan ID grup proses.
setrgi() tidak dilaksanakan
(F) Anda mencoba menetapkan ke $(, dan sistem operasi Anda tidak mendukung setrgi()
panggilan sistem (atau yang setara), atau setidaknya Konfigurasi tidak berpikir begitu.
setruid() tidak dilaksanakan
(F) Anda mencoba menetapkan ke $<, dan sistem operasi Anda tidak mendukung setruid()
panggilan sistem (atau yang setara), atau setidaknya Konfigurasi tidak berpikir begitu.
setockopt() pada soket tertutup %s
(W tertutup) Anda mencoba menyetel opsi soket pada soket tertutup. Apakah kamu lupa?
periksa nilai pengembalian Anda stopkontak () panggilan? Lihat "setsockopt" di perlfunc.
Menyetel ${^ENCODING} tidak digunakan lagi
(D tidak digunakan lagi) Anda menetapkan nilai non-"undef" ke "${^ENCODING}". Ini
ditinggalkan; lihat ""${^ENCODING}" di perlvar" untuk detailnya.
Menyetel $/ ke referensi ke %s sebagai bentuk slurp tidak digunakan lagi, diperlakukan sebagai undef
(D tidak digunakan lagi) Anda menetapkan referensi ke skalar ke $/ di mana item yang direferensikan berada
bukan bilangan bulat positif. Dalam perls yang lebih tua ini Muncul untuk bekerja sama dengan mengaturnya
untuk "undef" tetapi sebenarnya secara internal berbeda, kurang efisien dan dengan nasib yang sangat buruk
bisa mengakibatkan file Anda dipecah oleh bentuk referensi yang dirangkai.
Di Perl 5.20.0 ini diubah sehingga menjadi persis sama dengan menyetel $/ ke
undef, dengan pengecualian bahwa peringatan ini akan dilemparkan.
Anda disarankan untuk mengubah kode Anda untuk menyetel $/ menjadi "undef" secara eksplisit jika Anda ingin
slurp filenya. Dalam versi Perl yang akan datang, menetapkan referensi ke akan berakibat fatal
kesalahan.
Menyetel $/ ke referensi %s dilarang
(F) Anda mencoba menetapkan referensi ke non integer ke $/. Di Perls yang lebih tua, ini akan
berperilaku serupa dengan menyetelnya ke referensi ke bilangan bulat positif, di mana
integer adalah alamat referensi. Pada Perl 5.20.0 ini adalah kesalahan fatal, untuk
izinkan versi Perl yang akan datang untuk menggunakan referensi non-integer untuk tujuan yang lebih menarik.
pergeseran pada referensi adalah eksperimental
(S eksperimental::autoderef) "pergeseran" dengan argumen skalar adalah eksperimental dan mungkin
mengubah atau dihapus dalam versi Perl mendatang. Jika Anda ingin mengambil risiko menggunakan
fitur ini, cukup nonaktifkan peringatan ini:
tidak ada peringatan "eksperimental::autoderef";
shm%s tidak diterapkan
(F) Anda tidak memiliki IPC memori bersama Sistem V di sistem Anda.
!=~ seharusnya !~
(Sintaks W) Operator yang tidak cocok adalah !~, bukan !=~. !=~ akan ditafsirkan sebagai
Operator != (angka tidak sama) dan ~ (pelengkap 1): mungkin bukan yang Anda inginkan
dimaksudkan.
/%s/ mungkin harus ditulis sebagai "%s"
(Sintaks W) Anda telah menggunakan pola yang diharapkan Perl untuk menemukan string, seperti pada:
argumen pertama untuk "bergabung". Perl akan memperlakukan hasil benar atau salah dari pencocokan
pola terhadap $_ sebagai string, yang mungkin bukan yang Anda pikirkan.
menutup() pada soket tertutup %s
(W tertutup) Anda mencoba melakukan shutdown pada soket tertutup. Tampaknya agak berlebihan.
Pengendali SIG%s "%s" tidak ditentukan
(Sinyal W) Pengendali sinyal yang disebutkan dalam %SIG sebenarnya tidak ada. Mungkin Anda menaruh
itu ke dalam paket yang salah?
Pelat bocor dari cv %p
(S) Jika Anda melihat pesan ini, berarti ada yang salah dengan internal
pembukuan pohon op. Pohon op perlu dibebaskan setelah kesalahan kompilasi, tetapi
tidak dapat ditemukan, jadi malah bocor.
tidur(%u) terlalu besar
(W overflow) Anda memanggil "tidur" dengan nomor yang lebih besar dari yang bisa diandalkan
menangani dan "tidur" mungkin tidur lebih sedikit dari yang diminta.
Parameter slurpy tidak bertahan lama
(F) Dalam tanda tangan subrutin, Anda meletakkan sesuatu setelah slurpy (array atau hash)
parameter. Parameter slurpy mengambil semua argumen yang tersedia, jadi tidak mungkin ada
tersisa untuk mengisi parameter selanjutnya.
Pencocokan pintar dengan objek yang tidak kelebihan beban merusak enkapsulasi
(F) Anda tidak boleh menggunakan operator "~~" pada objek yang tidak membebaninya: Perl
menolak untuk menggunakan struktur dasar objek untuk kecocokan pintar.
Smartmatch bersifat eksperimental
(S eksperimental::smartmatch) Peringatan ini muncul jika Anda menggunakan smartmatch ("~~")
operator. Ini saat ini merupakan fitur eksperimental, dan detailnya tunduk pada
perubahan dalam rilis Perl di masa mendatang. Khususnya, perilakunya saat ini diperhatikan karena
menjadi kompleks dan tidak intuitif, dan sangat mungkin untuk dirombak.
sort sekarang menjadi kata yang dicadangkan
(F) Pesan kesalahan kuno yang hampir tidak pernah ditemukan lagi oleh siapa pun. Tapi sebelum
sort adalah kata kunci, orang terkadang menggunakannya sebagai filehandle.
Urutkan subrutin tidak mengembalikan nilai tunggal
(F) Subrutin perbandingan pengurutan yang ditulis dalam XS harus mengembalikan tepat satu item. Lihat
"urutkan" dalam perlfunc.
Filter sumber hanya berlaku untuk aliran byte
(F) Anda mencoba mengaktifkan filter sumber (biasanya dengan memuat modul filter sumber)
dalam string yang diteruskan ke "eval". Ini tidak diizinkan di bawah "unicode_eval"
fitur. Pertimbangkan untuk menggunakan "evalbytes" sebagai gantinya. Lihat fitur.
sambatan() offset melewati akhir array
(W misc) Anda mencoba menentukan offset yang melewati akhir array yang dilewati
untuk sambatan(). Penyambungan malah akan dimulai di akhir array, bukan di masa lalu
dia. Jika ini bukan yang Anda inginkan, coba perpanjang array secara eksplisit dengan menetapkan
$#array = $offset. Lihat "sambatan" di perlfunc.
sambatan pada referensi adalah eksperimental
(S eksperimental::autoderef) "sambatan" dengan argumen skalar adalah eksperimental dan mungkin
mengubah atau dihapus dalam versi Perl mendatang. Jika Anda ingin mengambil risiko menggunakan
fitur ini, cukup nonaktifkan peringatan ini:
tidak ada peringatan "eksperimental::autoderef";
Pisahkan lingkaran
(P) Perpecahan itu berulang tanpa batas. (Jelas, perpecahan tidak boleh diulang lebih banyak
kali daripada ada karakter input, itulah yang terjadi.) Lihat "split" di
perfunc.
Pernyataan tidak mungkin tercapai
(Kami eksekutif) Anda melakukan exec () dengan beberapa pernyataan setelahnya selain a mati (). Ini
hampir selalu error, karena exec () tidak pernah kembali kecuali ada kegagalan. Anda
mungkin ingin menggunakan sistem() sebagai gantinya, yang kembali. Untuk menekan peringatan ini,
menempatkan exec () dalam satu blok dengan sendirinya.
subrutin "status" %s tidak dapat berada dalam sebuah paket
(F) Subrutin yang dicakup secara leksikal tidak ada dalam satu paket, jadi tidak masuk akal untuk mencoba
untuk mendeklarasikan satu dengan kualifikasi paket di bagian depan.
"status %s" digunakan dalam perbandingan pengurutan
(Sintaks W) Variabel paket $a dan $b digunakan untuk perbandingan pengurutan. Anda menggunakan $a
atau $b sebagai operan ke operator "<=>" atau "cmp" di dalam blok perbandingan pengurutan,
dan variabel sebelumnya telah dideklarasikan sebagai variabel leksikal. Baik memenuhi syarat
mengurutkan variabel dengan nama paket, atau mengganti nama variabel leksikal.
variabel "status" %s tidak boleh ada dalam satu paket
(F) Variabel yang dicakup secara leksikal tidak ada dalam satu paket, jadi tidak masuk akal untuk mencoba
nyatakan satu dengan kualifikasi paket di bagian depan. Menggunakan lokal() jika Anda menghendaki
melokalkan variabel paket.
stat () pada filehandle yang belum dibuka %s
(W belum dibuka) Anda mencoba menggunakan stat () berfungsi pada filehandle yang baik
tidak pernah dibuka atau sejak itu ditutup.
String dengan titik kode lebih dari 0xFF mungkin tidak dipetakan ke dalam pegangan file dalam memori
(W utf8) Anda mencoba membuka referensi ke skalar untuk membaca atau menambahkan di mana skalar
berisi poin kode lebih dari 0xFF. File dalam memori memodelkan file pada disk dan hanya dapat
mengandung byte.
Rintisan ditemukan saat menyelesaikan metode "%s" kelebihan beban "%s" dalam paket "%s"
(P) Resolusi kelebihan beban pada pohon @ISA mungkin rusak oleh stub impor. Rintisan
seharusnya tidak pernah dibuat secara implisit, tetapi panggilan eksplisit ke "can" dapat merusak ini.
Subrutin "&%s" tidak tersedia
(Penutupan W) Selama kompilasi, subrutin atau eval bernama dalam mencoba untuk
menangkap subrutin leksikal luar yang saat ini tidak tersedia. Ini bisa terjadi
untuk satu dari dua alasan. Pertama, subrutin leksikal dapat dideklarasikan di outer
subrutin anonim yang belum dibuat. (Ingat bahwa subs yang bernama adalah
dibuat pada waktu kompilasi, sedangkan subs anonim dibuat saat run-time.) Misalnya,
sub { sub saya {...} sub f { \&a } }
Pada saat f dibuat, ia tidak dapat menangkap sub "a" saat ini, karena
subrutin anonim belum dibuat. Sebaliknya, berikut ini tidak akan memberikan
peringatan karena subrutin anonim sekarang telah dibuat dan aktif:
sub { sub saya a {...} eval 'sub f { \&a }' }->();
Situasi kedua disebabkan oleh evaluasi pengaksesan subrutin leksikal yang telah hilang
di luar jangkauan, misalnya,
sub f {
sub saya {...}
sub { evaluasi '\&a' }
}
f()->();
Di sini, ketika '\&a' di eval sedang dikompilasi, f() saat ini tidak sedang
dieksekusi, jadi &anya tidak tersedia untuk ditangkap.
Subrutin "%s" &%s menutupi deklarasi sebelumnya dalam %s yang sama
(W misc) Subrutin "saya" atau "status" telah dideklarasikan ulang dalam cakupan saat ini atau
pernyataan, secara efektif menghilangkan semua akses ke instance sebelumnya. Ini
hampir selalu kesalahan ketik. Perhatikan bahwa subrutin sebelumnya akan tetap
ada sampai akhir lingkup atau sampai semua referensi penutupan dimusnahkan.
Subrutin %s didefinisikan ulang
(W mendefinisikan ulang) Anda mendefinisikan ulang subrutin. Untuk menekan peringatan ini, katakan
{
tidak ada peringatan 'mendefinisikan ulang';
eval "nama bawahan { ... }";
}
Subrutin "%s" tidak akan tetap dibagikan
(Penutupan W) Bagian dalam (bersarang) bernama subrutin merujuk pada subrutin "saya"
didefinisikan dalam subrutin bernama luar.
Ketika subrutin dalam dipanggil, ia akan melihat nilai dari subrutin luar
subrutin leksikal seperti sebelum dan selama panggilan *pertama* ke luar
subrutin; dalam hal ini, setelah panggilan pertama ke subrutin luar selesai,
subrutin dalam dan luar tidak akan lagi berbagi nilai yang sama untuk leksikal
subrutin. Dengan kata lain, itu tidak akan dibagikan lagi. Ini terutama akan membuat
perbedaan jika subrutin leksikal mengakses variabel leksikal yang dideklarasikan dalam
lingkup sekitarnya.
Masalah ini biasanya dapat diselesaikan dengan membuat subrutin dalam menjadi anonim, menggunakan
sintaks "sub {}". Ketika sub-sub anonim dalam yang mereferensikan subrutin leksikal di
subrutin luar dibuat, mereka secara otomatis rebound ke nilai saat ini dari
sub leksikal tersebut.
Pergantian lingkaran
(P) Substitusi itu looping tak terhingga. (Jelas, substitusi tidak boleh
ulangi lebih banyak daripada karakter input, itulah yang terjadi.) Lihat
pembahasan substitusi di "Regexp Quote-Like Operators" di perlop.
Pola substitusi tidak dihentikan
(F) Lexer tidak bisa menemukan pembatas interior dari konstruksi s/// atau s{}{}.
Ingat bahwa pembatas tanda kurung menghitung tingkat bersarang. Tidak ada "$" terdepan dari
variabel $s dapat menyebabkan kesalahan ini.
Penggantian pengganti tidak dihentikan
(F) Lexer tidak bisa menemukan pembatas akhir dari konstruksi s/// atau s{}{}.
Ingat bahwa pembatas tanda kurung menghitung tingkat bersarang. Tidak ada "$" terdepan dari
variabel $s dapat menyebabkan kesalahan ini.
substr di luar string
(W substr)(F) Anda mencoba mereferensikan a substr() yang menunjuk di luar string.
Artinya, nilai absolut offset lebih besar dari panjang string.
Lihat "substr" di perlfunc. Peringatan ini fatal jika substr digunakan dalam lvalue
konteks (sebagai sisi kiri tugas atau sebagai argumen subrutin untuk
contoh).
sv_upgrade dari tipe %d ke tipe %d
(P) Perl mencoba memaksa peningkatan SV ke tipe yang sebenarnya lebih rendah dari
jenisnya saat ini.
SWASHNEW tidak mengembalikan referensi HV
(P) Ada yang tidak beres secara internal ketika Perl mencoba mencari Unicode
karakter.
Switch (?(kondisi)... berisi terlalu banyak cabang di regex; ditandai dengan <-- HERE di m/%s/
(F) Konstruk A (?(kondisi)if-klausa|else-klausa) dapat memiliki paling banyak dua cabang (
klausa if dan klausa else). Jika Anda ingin satu atau keduanya mengandung pergantian, seperti
seperti menggunakan "ini|itu|lainnya", sertakan dalam tanda kurung pengelompokan:
(?(kondisi)(?:ini|itu|lainnya)|else-klausa)
<-- HERE menunjukkan keberadaan dalam ekspresi reguler masalah ditemukan.
Lihat perlre.
Kondisi sakelar tidak dikenali di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Bagian kondisi dari konstruk (?(kondisi)if-klausa|else-klausa) bukan
diketahui. Kondisinya harus salah satu dari berikut ini:
(1) (2) ... benar jika 1, 2, dst., tangkapan cocok
( ) ('NAME') benar jika nama tangkapan cocok
(?=...) (?<=...) benar jika subpola cocok
(?!...) (?
(?{ KODE }) benar jika kode mengembalikan nilai yang benar
(R) benar jika mengevaluasi rekursi dalam
(R1) (R2) ... benar jika langsung di dalam grup tangkap 1, 2, dst.
(R&NAME) benar jika langsung di dalam bernama capture
(DEFINE) selalu salah; untuk mendefinisikan subpola bernama
<-- HERE menunjukkan keberadaan dalam ekspresi reguler masalah ditemukan.
Lihat perlre.
Sakelar (?(kondisi)... tidak diakhiri dalam ekspresi reguler; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menghilangkan untuk menutup blok (?(kondisi)...) di suatu tempat dalam pola. Tambah sebuah
kurung tutup pada posisi yang sesuai. Lihat perlre.
beralih efektif %s tidak diterapkan
(F) Sementara di bawah pragma "gunakan filetest", kami tidak dapat mengubah yang nyata dan efektif
uid atau gid.
kesalahan sintaks
(F) Mungkin berarti Anda mengalami kesalahan sintaks. Alasan umum meliputi:
Kata kunci salah eja.
Titik koma tidak ada.
Sebuah koma hilang.
Tanda kurung buka atau tutup tidak ada.
Tanda kurung buka atau tutup tidak ada.
Kutipan penutup tidak ada.
Seringkali akan ada pesan kesalahan lain yang terkait dengan kesalahan sintaks yang memberi lebih banyak
informasi. (Kadang-kadang membantu untuk menghidupkan -w.) Pesan kesalahan itu sendiri sering
memberitahu Anda di mana itu di baris ketika memutuskan untuk menyerah. Terkadang yang sebenarnya
kesalahan adalah beberapa token sebelum ini, karena Perl pandai memahami acak
memasukkan. Kadang-kadang nomor baris mungkin menyesatkan, dan sekali di bulan biru,
satu-satunya cara untuk mengetahui apa yang memicu kesalahan adalah dengan memanggil "perl -c" berulang kali,
memotong setengah program setiap kali untuk melihat apakah kesalahannya hilang. semacam
versi cybernetic dari 20 pertanyaan.
kesalahan sintaksis pada baris %d: '%s' tak terduga
(A) Anda tidak sengaja menjalankan skrip Anda melalui Bourne shell, bukan Perl.
Periksalah #! baris, atau masukkan sendiri skrip Anda ke Perl secara manual.
kesalahan sintaks dalam file %s pada baris %d, 2 token berikutnya "%s"
(F) Kesalahan ini mungkin terjadi jika Anda menjalankan skrip perl5 melalui perl4
penerjemah, terutama jika 2 token berikutnya adalah "gunakan ketat" atau "$var saya" atau "kami
$var".
Kesalahan sintaks di (?[...]) di regex m/%s/
(F) Perl tidak tahu apa yang Anda maksud di dalam konstruksi ini; ini memberi tahu Anda
bahwa itu menyerah mencoba.
sintaks %s OK
(F) Pesan ringkasan terakhir ketika "perl -c" berhasil.
sysread() pada filehandle tertutup %s
(W ditutup) Anda mencoba membaca dari filehandle tertutup.
sysread() pada filehandle yang belum dibuka %s
(W belum dibuka) Anda mencoba membaca dari pegangan file yang tidak pernah dibuka.
Sistem V %s tidak diimplementasikan pada mesin ini
(F) Anda mencoba melakukan sesuatu dengan fungsi yang dimulai dengan "sem", "shm", atau "msg"
tetapi Sistem V IPC tidak diimplementasikan di mesin Anda. Di beberapa mesin
fungsionalitas bisa ada tetapi tidak dikonfigurasi. Konsultasikan dukungan sistem Anda.
penulisan sistem() pada filehandle tertutup %s
(W ditutup) Filehandle yang Anda tulis akan ditutup sendiri beberapa saat sebelumnya.
Periksa aliran kontrol Anda.
"-T" dan "-B" tidak diimplementasikan pada filehandle
(F) Perl tidak bisa mengintip buffer stdio dari filehandles ketika tidak tahu tentang Anda
jenis stdio. Anda harus menggunakan nama file sebagai gantinya.
Target goto terlalu dalam bersarang
(F) Anda mencoba menggunakan "goto" untuk mencapai label yang terlalu dalam untuk Perl untuk
mencapai. Perl membantu Anda dengan menolak.
beritahudir() mencoba dirhandle yang tidak valid %s
(W io) Dirhandle yang kamu coba beritahudir() tertutup atau tidak benar-benar a
dirhandle Periksa aliran kontrol Anda.
menceritakan() pada pegangan file yang belum dibuka
(W belum dibuka) Anda mencoba menggunakan menceritakan() berfungsi pada filehandle yang baik
tidak pernah dibuka atau sejak itu ditutup.
Penggunaan $[ itu tidak didukung
(F) Penugasan ke $[ sekarang dibatasi secara ketat, dan ditafsirkan sebagai kompiler
pengarahan. Anda mungkin mengatakan hanya satu dari
$[ = 0;
$[ = 1;
...
lokal $[ = 0;
lokal $[ = 1;
...
Ini untuk mencegah masalah satu modul mengubah basis array keluar dari bawah
modul lain secara tidak sengaja. Lihat "$[" di perlvar dan arybase.
Fitur bitwise bersifat eksperimental
(S eksperimental::bitwise) Peringatan ini dikeluarkan jika Anda menggunakan operator bitwise ("& | ^
~ &. |. ^. ~.") dengan fitur "bitwise" diaktifkan. Cukup tekan peringatan jika
Anda ingin menggunakan fitur tersebut, tetapi ketahuilah bahwa dengan melakukannya Anda mengambil risiko
menggunakan fitur eksperimental yang dapat berubah atau dihapus di versi Perl mendatang:
tidak ada peringatan "eksperimental::bitwise";
gunakan fitur "bitwise";
$x |.= $y;
ruang bawah tanah() fungsi tidak dilaksanakan karena paranoia yang berlebihan.
(F) Konfigurasi tidak dapat menemukan ruang bawah tanah() berfungsi pada mesin Anda, mungkin karena
vendor Anda tidak menyediakannya, mungkin karena mereka pikir Pemerintah AS berpikir
itu rahasia, atau setidaknya mereka akan terus berpura-pura. Dan jika kau
mengutip saya tentang itu, saya akan menyangkalnya.
Fungsi %s tidak diimplementasikan
(F) Fungsi yang ditunjukkan tidak diimplementasikan pada arsitektur ini, menurut
pemeriksaan Konfigurasi.
Fitur lexical_subs bersifat eksperimental
(S eksperimental::lexical_subs) Peringatan ini muncul jika Anda mendeklarasikan sub dengan "saya"
atau "negara". Cukup tekan peringatan jika Anda ingin menggunakan fitur tersebut, tetapi ketahuilah itu
dalam melakukannya, Anda mengambil risiko menggunakan fitur eksperimental yang mungkin berubah
atau dihapus di versi Perl mendatang:
tidak ada peringatan "experimental::lexical_subs";
gunakan fitur "lexical_subs";
subfoo saya { ... }
Fitur regex_sets bersifat eksperimental
(S eksperimental::regex_sets) Peringatan ini muncul jika Anda menggunakan sintaks "(?[ ])"
dalam ekspresi reguler. Detail fitur ini dapat berubah. jika kamu
ingin menggunakannya, tetapi ketahuilah bahwa dengan melakukannya Anda mengambil risiko menggunakan
fitur eksperimental yang dapat berubah di versi Perl mendatang, Anda dapat melakukan ini untuk
diamkan peringatan:
tidak ada peringatan "eksperimental::regex_sets";
Fitur tanda tangan bersifat eksperimental
(S eksperimental::signatures) Peringatan ini muncul jika Anda membuka bungkus subrutin
argumen menggunakan tanda tangan. Cukup tekan peringatan jika Anda ingin menggunakan
fitur, tetapi ketahuilah bahwa dengan melakukannya Anda mengambil risiko menggunakan eksperimen
fitur yang dapat diubah atau dihapus di versi Perl mendatang:
tidak ada peringatan "eksperimental::tanda tangan";
gunakan fitur "tanda tangan";
sub foo ($kiri, $kanan) { ... }
Stat sebelumnya %s bukan lstat
(F) Tidak masuk akal untuk menguji buffer stat saat ini untuk hubungan simbolik jika
stat terakhir yang menulis ke buffer stat sudah melewati symlink untuk sampai ke
berkas nyata. Gunakan nama file yang sebenarnya sebagai gantinya.
Atribut 'unik' hanya dapat diterapkan ke variabel 'kami'
(F) Atribut ini tidak pernah didukung pada deklarasi "saya" atau "sub".
Perl ini tidak dapat mengatur ulang elemen lingkungan CRTL (%s)
Perl ini tidak dapat menyetel elemen lingkungan CRTL (%s=%s)
(W internal) Peringatan khusus untuk VMS. Anda mencoba mengubah atau menghapus elemen dari
array lingkungan internal CRTL, tetapi salinan Perl Anda tidak dibuat dengan CRTL yang
berisi setenv() fungsi. Anda harus membangun kembali Perl dengan CRTL yang melakukannya,
atau mendefinisikan ulang PERL_ENV_TABLES (lihat perlvms) sehingga array lingkungan bukan target
dari perubahan ke %ENV yang menghasilkan peringatan.
Perl ini belum dibangun dengan dukungan untuk traversal kunci hash acak tetapi sesuatu
bernama Perl_hv_rand_set().
(F) Sesuatu telah mencoba menggunakan panggilan API internal yang bergantung pada keberadaan Perl
dikompilasi dengan dukungan default untuk traversal kunci hash acak, tetapi Perl ini memiliki
telah dikompilasi tanpa itu. Anda harus melaporkan peringatan ini ke hulu yang relevan
party, atau kompilasi ulang Perl dengan opsi default.
kali tidak dilaksanakan
(F) Versi perpustakaan C Anda tampaknya tidak melakukannya waktu(). Saya curiga Anda tidak
berjalan di Unix.
"-T" ada di #! baris, itu juga harus digunakan pada baris perintah
(X) #! baris (atau setara lokal) dalam skrip Perl berisi: -T pilihan (atau
-t option), tetapi Perl tidak dipanggil dengan -T di baris perintahnya. Ini adalah kesalahan
karena, pada saat Perl menemukan -T dalam naskah, sudah terlambat untuk menodai dengan benar
segala sesuatu dari lingkungan. Jadi Perl menyerah.
Jika skrip Perl dieksekusi sebagai perintah menggunakan #! mekanisme (atau
setara lokal), kesalahan ini biasanya dapat diperbaiki dengan mengedit #! garis sehingga
-%C option adalah bagian dari argumen pertama Perl: misalnya ubah "perl -n -%c" menjadi "perl -%c
-n".
Jika skrip Perl dieksekusi sebagai "nama skrip Perl", maka -%C pilihan harus
muncul di baris perintah: "perl -%c scriptname".
Ke%s: pemetaan ilegal '%s'
(F) Anda mencoba mendefinisikan pemetaan-To yang disesuaikan untuk lc(), lcpertama, uc(), atau ucpertama()
(atau versi sebaris string mereka), tetapi Anda menentukan pemetaan ilegal. Lihat "Pengguna-
Properti Karakter yang Ditentukan" di perlunicode.
Terlalu dalam bersarang ()-grup
(F) Template Anda berisi ()-grup dengan tingkat bersarang yang sangat dalam.
Terlalu sedikit argumen untuk syscall
(F) Harus ada setidaknya satu argumen untuk panggilan sistem() untuk menentukan panggilan sistem ke
panggilan, bodoh dilly.
Terlalu sedikit argumen untuk subrutin
(F) Subrutin yang menggunakan tanda tangan menerima argumen lebih sedikit daripada yang dibutuhkan oleh
tanda tangan. Penelepon subrutin mungkin salah. Tidak nyaman, ini
kesalahan akan dilaporkan di lokasi subrutin, bukan di pemanggil.
Terlambat untuk opsi "-%s"
(X) #! baris (atau setara lokal) dalam skrip Perl berisi: -M, -m or -C
.
Dalam kasus -M dan -m, ini adalah kesalahan karena opsi tersebut tidak dimaksudkan untuk
gunakan skrip di dalam. Gunakan pragma "gunakan" sebagai gantinya.
-C opsi hanya berfungsi jika ditentukan pada baris perintah juga (dengan yang sama
urutan huruf atau angka berikut). Tentukan opsi ini pada perintah
baris, atau, jika sistem Anda mendukungnya, buat skrip Anda dapat dieksekusi dan jalankan secara langsung
alih-alih meneruskannya ke Perl.
Terlambat menjalankan %s blok
(W void) Blok CHECK atau INIT sedang ditentukan selama run time yang tepat, ketika:
kesempatan untuk menjalankannya telah berlalu. Mungkin Anda sedang memuat file dengan
"memerlukan" atau "lakukan" ketika Anda seharusnya menggunakan "gunakan". Atau mungkin Anda harus meletakkan
"memerlukan" atau "melakukan" di dalam blok BEGIN.
Terlalu banyak argumen untuk syscall
(F) Perl mendukung maksimal hanya 14 argumen untuk panggilan sistem().
Terlalu banyak argumen untuk %s
(F) Fungsi membutuhkan argumen lebih sedikit dari yang Anda tentukan.
Terlalu banyak argumen untuk subrutin
(F) Subrutin yang menggunakan tanda tangan menerima lebih banyak argumen daripada yang dibutuhkan oleh
tanda tangan. Penelepon subrutin mungkin salah. Tidak nyaman, ini
kesalahan akan dilaporkan di lokasi subrutin, bukan di pemanggil.
Terlalu banyak)
(A) Anda tidak sengaja menjalankan skrip Anda csh bukannya Perl. Periksalah #!
baris, atau masukkan sendiri skrip Anda ke Perl secara manual.
Terlalu banyak (
(A) Anda tidak sengaja menjalankan skrip Anda csh bukannya Perl. Periksalah #!
baris, atau masukkan sendiri skrip Anda ke Perl secara manual.
Tertinggal \ dalam ekspresi reguler m/%s/
(F) Ekspresi reguler diakhiri dengan garis miring terbalik tanpa garis miring terbalik. Garis miring terbalik. Melihat
perlre
Pola transliterasi tidak dihentikan
(F) Lexer tidak dapat menemukan pembatas interior dari tr/// atau tr[][] atau y/// atau
konstruksi y[][]. Hilangnya "$" di depan dari variabel $tr atau $y dapat menyebabkan ini
kesalahan.
Penggantian transliterasi tidak dihentikan
(F) Lexer tidak dapat menemukan pembatas akhir dari tr///, tr[][], y/// atau y[][]
membangun.
'%s' terjebak oleh topeng operasi
(F) Anda mencoba menggunakan operator dari kompartemen Brankas yang tidak diizinkan.
Lihat Aman.
pemotongan tidak dilaksanakan
(F) Mesin Anda tidak menerapkan mekanisme pemotongan file yang diketahui Configure
tentang.
Jenis argumen %d hingga &CORE::%s harus %s
(F) Subrutin yang dimaksud dalam paket CORE membutuhkan argumennya menjadi hard
referensi ke data dari tipe yang ditentukan. Overloading diabaikan, jadi referensi ke
objek yang bukan tipe yang ditentukan, tetapi tetap memiliki kelebihan untuk menanganinya,
tetap tidak akan diterima.
Jenis argumen %d hingga %s harus %s (bukan %s)
(F) Fungsi ini membutuhkan argumen dalam posisi itu untuk menjadi tipe tertentu.
Array harus @NAME atau "@{EXPR}". Hash harus %NAME atau "%{EXPR}". Tidak ada implisit
dereferensi diperbolehkan--gunakan formulir {EXPR} sebagai dereferensi eksplisit. Melihat
perlref.
Jenis argumen untuk %s harus berupa hashref atau arrayref yang tidak diberi izin
(F) Anda memanggil "kunci", "nilai" atau "masing-masing" dengan argumen skalar yang bukan a
referensi ke hash atau array yang tidak diberkati.
umask tidak dilaksanakan
(F) Mesin Anda tidak mengimplementasikan fungsi umask dan Anda mencoba menggunakannya untuk
batasi izin untuk Anda sendiri (EXPR & 0700).
Konteks tidak seimbang: %d lebih banyak PUSH daripada POP
(S internal) Kode keluar mendeteksi inkonsistensi internal dalam berapa banyak eksekusi
konteks dimasukkan dan ditinggalkan.
Penyimpanan tidak seimbang: %d lebih banyak menyimpan daripada memulihkan
(S internal) Kode keluar mendeteksi inkonsistensi internal dalam berapa banyak nilai yang
terlokalisir sementara.
Cakupan tidak seimbang: %d lebih banyak ENTER daripada LEAVEs
(S internal) Kode keluar mendeteksi inkonsistensi internal dalam berapa banyak blok yang
masuk dan pergi.
Refcount tabel string tidak seimbang: (%d) untuk "%s"
(S internal) Saat keluar, Perl menemukan beberapa string yang tersisa di tabel string bersama
digunakan untuk menyalin saat menulis dan untuk kunci hash. Entri seharusnya dibebaskan, jadi ini
menunjukkan bug di suatu tempat.
Tmps tidak seimbang: %d lebih banyak alokasi daripada gratis
(S internal) Kode keluar mendeteksi inkonsistensi internal dalam berapa banyak manusia
skalar dialokasikan dan dibebaskan.
Format tidak terdefinisi "%s" disebut
(F) Format yang ditunjukkan tampaknya tidak ada. Mungkin itu benar-benar di tempat lain
kemasan? Lihat kinerja.
Subrutin pengurutan yang tidak ditentukan "%s" disebut
(F) Rutinitas perbandingan sortir yang ditentukan tampaknya tidak ada. Mungkin itu di
paket yang berbeda? Lihat "urutkan" di perlfunc.
Subrutin tidak terdefinisi &%s dipanggil
(F) Subrutin yang ditunjukkan belum ditentukan, atau jika ya, sudah ada
tidak terdefinisi.
Subrutin yang tidak terdefinisi disebut
(F) Subrutin anonim yang Anda coba panggil belum ditentukan, atau jika ya,
sejak itu tidak terdefinisi.
Subrutin tidak terdefinisi dalam pengurutan
(F) Rutinitas perbandingan pengurutan yang ditentukan dideklarasikan tetapi tampaknya tidak
didefinisikan belum. Lihat "urutkan" di perlfunc.
Format teratas yang tidak ditentukan "%s" disebut
(F) Format yang ditunjukkan tampaknya tidak ada. Mungkin itu benar-benar di tempat lain
kemasan? Lihat kinerja.
Nilai yang tidak ditentukan ditetapkan ke typeglob
(W misc) Nilai yang tidak ditentukan diberikan ke typeglob, a la "*foo = undef". Ini
tidak melakukan apa-apa. Mungkin yang Anda maksud adalah "undef *foo".
%s: Variabel tak terdefinisi
(A) Anda tidak sengaja menjalankan skrip Anda csh bukannya Perl. Periksalah #!
baris, atau masukkan sendiri skrip Anda ke Perl secara manual.
Penjepit kiri yang tidak lolos di regex sudah tidak digunakan lagi, diteruskan di regex; ditandai dengan <-- DI SINI
dalam m/%s/
(D usang, regexp) Anda menggunakan karakter "{" literal dalam ekspresi reguler
pola. Anda harus mengubah untuk menggunakan "\{" sebagai gantinya, karena versi Perl . yang akan datang
(sementara v5.26) akan menganggap ini sebagai kesalahan sintaks. Jika polanya
pembatas juga berupa kurung kurawal, semua kurung kurawal ("}") yang cocok juga harus diloloskan ke
menghindari membingungkan parser, misalnya,
qr{abc\{def\}ghi}
unexec dari %s ke %s gagal!
(F) unexec() rutin gagal karena suatu alasan. Lihat perwakilan FSF lokal Anda,
yang mungkin meletakkannya di sana di tempat pertama.
Operator biner tak terduga '%c' tanpa operan sebelumnya di regex; ditandai dengan <-- DI SINI di
MS/
(F) Anda memiliki sesuatu seperti ini:
(?[ | \p{Digit} ])
di mana "|" adalah operator biner dengan operan di sebelah kanan, tetapi tidak ada operan di
kiri.
Karakter tak terduga dalam regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda memiliki sesuatu seperti ini:
(?[z])
Dalam "(?[ ])", tidak ada karakter literal yang diperbolehkan kecuali mereka berada di dalam
sepasang tanda kurung siku, seperti
(?[[ z ] ])
Kemungkinan lain adalah Anda lupa garis miring terbalik. Perl tidak cukup pintar untuk menebak
apa yang sebenarnya Anda maksudkan.
Entri entersub nilai konstan tak terduga melalui tipe/targ %d:%d
(P) Saat mengkompilasi panggilan subrutin dalam konteks nilai, Perl gagal internal
pemeriksaan konsistensi. Itu menemui pohon op yang cacat.
Keluar tak terduga %u
(S) keluar() dipanggil atau skrip selesai dengan anggun ketika
"PERL_EXIT_WARN" disetel di "PL_exit_flags".
Kegagalan keluar tak terduga %d
(S) Tidak tertangkap mati () dipanggil ketika "PERL_EXIT_WARN" disetel di "PL_exit_flags".
Tak terduga ')' di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda memiliki sesuatu seperti ini:
(?[ ( \p{Digit} + ) ])
")" tidak pada tempatnya. Sesuatu tampaknya seharusnya digabungkan dengan
digit, atau "+" seharusnya tidak ada, atau sesuatu seperti itu. Perl tidak tahu
apa yang dimaksudkan.
Tak terduga '(' tanpa operator sebelumnya di ekspresi reguler; ditandai dengan <-- DI SINI di m/%s/
(F) Anda memiliki sesuatu seperti ini:
(?[ \p{Digit} ( \p{Lao} + \p{Thailand} ) ])
Seharusnya ada operator sebelum "(", karena tidak ada indikasi bagaimana
digit harus digabungkan dengan karakter dalam aksara Laos dan Thailand.
Unicode non-karakter U+%X ilegal untuk pertukaran terbuka
(S nonchar) Codepoint tertentu, seperti U+FFFE dan U+FFFF, didefinisikan oleh Unicode
standar menjadi non-karakter. Itu adalah titik kode legal, tetapi dicadangkan untuk
penggunaan internal; jadi, aplikasi tidak boleh mencoba menukarnya. Sebuah aplikasi mungkin
tidak mengharapkan karakter ini sama sekali, dan menerimanya dapat menyebabkan bug.
Jika Anda tahu apa yang Anda lakukan, Anda dapat mematikan peringatan ini dengan "tidak ada peringatan
'nonchar';".
Ini sebenarnya bukan kesalahan "berat", tetapi seharusnya dinaikkan secara default bahkan
jika peringatan tidak diaktifkan, dan saat ini satu-satunya cara untuk melakukannya di Perl adalah dengan menandai
itu sebagai serius.
Pengganti Unicode U+%X ilegal di UTF-8
(Pengganti S) Anda memiliki pengganti UTF-16 dalam konteks di mana mereka tidak dianggap
dapat diterima. Poin kode ini, antara U+D800 dan U+DFFF (inklusif), digunakan oleh
Unicode hanya untuk UTF-16. Namun, Perl secara internal mengizinkan semua kode integer yang tidak ditandatangani
poin (hingga batas ukuran yang tersedia di platform Anda), termasuk pengganti. Tetapi
ini dapat menyebabkan masalah saat menjadi input atau output, yang kemungkinan besar di mana ini
pesan datang dari. Jika Anda benar-benar tahu apa yang Anda lakukan, Anda dapat mematikan ini
peringatan dengan "tidak ada peringatan 'pengganti';".
Nama char tidak dikenal '%s'
(F) Nama yang Anda gunakan di dalam "\N{}" tidak diketahui oleh Perl. Periksa ejaannya. Kamu bisa
katakan "gunakan charnames ":loose"" agar tidak terlalu tepat tentang spasi, tanda hubung, dan
kapitalisasi pada nama Unicode standar. (Semua alias khusus yang telah dibuat
harus ditentukan dengan tepat, terlepas dari apakah ":loose" digunakan atau tidak.) Kesalahan ini
mungkin juga terjadi jika "\N{}" tidak dalam cakupan yang sesuai
"menggunakan charname".
Kesalahan yang tidak diketahui
(P) Perl hendak mencetak pesan kesalahan di $@, tetapi variabel $@ tidak ada,
bahkan setelah upaya untuk membuatnya.
tidak diketahui Buka() modus '%s'
(F) Argumen kedua dari 3-argumen Buka() tidak termasuk dalam daftar mode yang valid:
"<", ">", ">>", "+<", "+>", "+>>", "-|", "|-", "<&", ">&".
Lapisan PerlIO tidak dikenal "%s"
(Lapisan W) Upaya dilakukan untuk mendorong lapisan yang tidak dikenal ke sistem I/O Perl.
(Lapisan menangani transformasi data antara representasi eksternal dan internal.)
Perhatikan bahwa beberapa lapisan, seperti "mmap", tidak didukung di semua lingkungan. Jika Anda
program tidak secara eksplisit meminta operasi yang gagal, itu mungkin akibat dari
nilai variabel lingkungan PERLIO.
Proses tak dikenal %x mengirim pesan ke prime_env_iter: %s
(P) Sebuah kesalahan khusus untuk VMS. Perl membaca nilai untuk %ENV sebelum mengulanginya
itu, dan orang lain memasukkan pesan dalam aliran data yang diharapkan Perl. milik seseorang
sangat bingung, atau mungkin mencoba menumbangkan populasi Perl sebesar %ENV untuk kejahatan
tujuan.
Pengubah regex tidak dikenal "%s"
(F) Alfanumerik segera setelah pembatas penutup ekspresi reguler
pattern ditafsirkan oleh Perl sebagai flag pengubah untuk regex. Salah satunya kamu
ditentukan tidak valid. Salah satu cara ini bisa terjadi adalah jika Anda tidak memasukkan spasi
antara akhir regex dan operator alfanumerik berikut:
if ($a =~ /foo/dan $bar == 3) { ... }
"a" adalah bendera pengubah yang valid, tetapi "n" tidak, dan memunculkan kesalahan ini. Mungkin
yang dimaksud sebagai gantinya adalah:
if ($a =~ /foo/ dan $bar == 3) { ... }
Subpragma '%s' "kembali" tidak diketahui (yang diketahui adalah: %s)
(W) Anda mencoba menggunakan subpragma yang tidak diketahui dari pragma "kembali".
Kondisi sakelar tidak diketahui (?(...)) di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Bagian kondisi dari konstruk (?(kondisi)if-klausa|else-klausa) bukan
diketahui. Kondisinya harus salah satu dari berikut ini:
(1) (2) ... benar jika 1, 2, dst., tangkapan cocok
( ) ('NAME') benar jika nama tangkapan cocok
(?=...) (?<=...) benar jika subpola cocok
(?!...) (?
(?{ KODE }) benar jika kode mengembalikan nilai yang benar
(R) benar jika mengevaluasi rekursi dalam
(R1) (R2) ... benar jika langsung di dalam grup tangkap 1, 2, dst.
(R&NAME) benar jika langsung di dalam bernama capture
(DEFINE) selalu salah; untuk mendefinisikan subpola bernama
<-- HERE menunjukkan keberadaan dalam ekspresi reguler masalah ditemukan.
Lihat perlre.
Huruf opsi Unicode tidak dikenal '%c'
(F) Anda menentukan opsi Unicode yang tidak diketahui. Lihat dokumentasi perlrun dari "-C"
beralih untuk daftar opsi yang diketahui.
Nilai opsi Unicode tidak diketahui %d
(F) Anda menentukan opsi Unicode yang tidak diketahui. Lihat dokumentasi perlrun dari "-C"
beralih untuk daftar opsi yang diketahui.
Pola kata kerja tidak dikenal '%s' di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda salah ketik atau salah memasukkan angka "*" setelah pembukaan
penjepit dalam pola Anda. Periksa pola dan tinjau perlre untuk detail tentang kata kerja hukum
pola.
Kategori peringatan tidak dikenal '%s'
(F) Kesalahan yang dikeluarkan oleh pragma "peringatan". Anda menentukan kategori peringatan yang
tidak diketahui perl pada saat ini.
Perhatikan bahwa jika Anda ingin mengaktifkan kategori peringatan yang didaftarkan oleh modul (mis
peringatan 'File::Find'"), Anda harus memuat modul ini terlebih dahulu.
'[' yang tak tertandingi di kelas POSIX di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda memiliki sesuatu seperti ini:
(?[ [:angka: ])
Itu harus ditulis:
(?[ [:angka:] ])
'%c' yang tak tertandingi di kelas POSIX di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda memiliki sesuatu seperti ini:
(?[ [[:alnum] ])
Seharusnya ada ":", seperti ini:
(?[ [:alnum:] ])
Tak tertandingi [ dalam regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Tanda kurung di sekitar kelas karakter harus cocok. Jika Anda ingin menyertakan
kurung tutup di kelas karakter, garis miring terbalik atau letakkan terlebih dahulu. <-- DI SINI
menunjukkan keberadaan dalam ekspresi reguler masalah ditemukan. Lihat perlre.
Tak tertandingi ( dalam regex; ditandai dengan <-- HERE di m/%s/
Tak tertandingi ) di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Tanda kurung tanpa garis miring harus selalu seimbang dalam ekspresi reguler. Jika
Anda pengguna vi, kunci % sangat berharga untuk menemukan tanda kurung yang cocok. Itu
<-- HERE menunjukkan keberadaan dalam ekspresi reguler masalah ditemukan. Melihat
perlre
Tanda kurung %s kanan tak tertandingi
(F) Lexer menghitung lebih banyak kurung kurawal atau kurung siku daripada kurung buka, jadi
Anda mungkin kehilangan braket pembuka yang cocok. Sebagai aturan umum, Anda akan menemukan
yang hilang (bisa dikatakan) di dekat tempat terakhir Anda mengedit.
String "%s" yang tidak dikutip mungkin berbenturan dengan kata cadangan di masa mendatang
(W reserved) Anda menggunakan bareword yang mungkin suatu hari nanti diklaim sebagai kata reserved.
Yang terbaik adalah memasukkan kata seperti itu dalam tanda kutip, atau menggunakan huruf besar, atau menyisipkan
bawah ke dalamnya. Anda mungkin juga mendeklarasikannya sebagai subrutin.
Karakter tak dikenal %s; ditandai dengan <-- HERE setelah %s di dekat kolom %d
(F) Pengurai Perl tidak tahu apa yang harus dilakukan dengan karakter yang ditentukan di Perl . Anda
script (atau eval) di dekat kolom yang ditentukan. Mungkin Anda mencoba menjalankan kompresi
script, program biner, atau direktori sebagai program Perl.
Escape tidak dikenal \%c di kelas karakter di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menggunakan kombinasi karakter garis miring terbalik yang tidak dikenali oleh Perl di dalamnya
kelas karakter. Ini adalah kesalahan fatal ketika kelas karakter digunakan dalam "(?[
])".
Pelarian tidak dikenal \%c di kelas karakter dilewati di regex; ditandai dengan <-- DI SINI di
MS/
(W regexp) Anda menggunakan kombinasi karakter garis miring terbalik yang tidak dikenali oleh Perl
di dalam kelas karakter. Karakternya dipahami secara harfiah, tetapi ini mungkin berubah
dalam versi Perl yang akan datang. <-- HERE menunjukkan keberadaan dalam ekspresi reguler
pelarian itu ditemukan.
Pelarian tidak dikenal \%c melewati
(W misc) Anda menggunakan kombinasi karakter garis miring terbalik yang tidak dikenali oleh Perl.
Karakternya dipahami secara harfiah, tetapi ini dapat berubah di versi mendatang
Perl.
Escape yang tidak dikenali \%s dilewati dalam regex; ditandai dengan <-- DI SINI dalam m/%s/
(W regexp) Anda menggunakan kombinasi karakter garis miring terbalik yang tidak dikenali oleh Perl.
Karakter dipahami secara harfiah, tetapi ini dapat berubah di versi mendatang dari
Perl. <-- HERE menunjukkan keberadaan dalam ekspresi reguler pelarian itu
ditemukan.
Nama sinyal tidak dikenal "%s"
(F) Anda menentukan nama sinyal untuk membunuh() fungsi yang tidak dikenali. Mengatakan
"kill -l" di shell Anda untuk melihat nama sinyal yang valid di sistem Anda.
Sakelar tidak dikenal: -%s (-h akan menampilkan opsi yang valid)
(F) Anda menentukan opsi ilegal untuk Perl. Jangan lakukan itu. (Jika Anda pikir Anda tidak melakukannya
lakukan itu, periksa #! baris untuk melihat apakah itu memasok sakelar yang buruk atas nama Anda.)
unshift pada referensi adalah eksperimental
(S eksperimental::autoderef) "unshift" dengan argumen skalar adalah eksperimental dan mungkin
mengubah atau dihapus dalam versi Perl mendatang. Jika Anda ingin mengambil risiko menggunakan
fitur ini, cukup nonaktifkan peringatan ini:
tidak ada peringatan "eksperimental::autoderef";
%s gagal pada nama file yang berisi baris baru
(W baris baru) Operasi file dicoba pada nama file, dan operasi itu gagal,
MUNGKIN karena nama file berisi baris baru, MUNGKIN karena Anda lupa
mengunyah() itu mati. Lihat "chomp" di perlfunc.
Fungsi direktori "%s" yang tidak didukung disebut
(F) Mesin Anda tidak mendukung bukadir() dan bacadir().
Fungsi tidak didukung %s
(F) Mesin ini tampaknya tidak mengimplementasikan fungsi yang ditunjukkan. Paling sedikit,
Konfigurasi tidak berpikir begitu.
Garpu fungsi yang tidak didukung
(F) Versi executable Anda tidak mendukung forking.
Perhatikan bahwa di bawah beberapa sistem, seperti OS/2, mungkin ada rasa Perl . yang berbeda
executable, beberapa di antaranya mungkin mendukung fork, beberapa tidak. Coba ubah nama yang Anda panggil
Perl oleh ke "perl_", "perl__", dan seterusnya.
Penyandian skrip yang tidak didukung %s
(F) File program Anda dimulai dengan Unicode Byte Order Mark (BOM) yang menyatakannya ke
berada dalam penyandian Unicode yang tidak dapat dibaca Perl.
Fungsi soket "%s" yang tidak didukung disebut
(F) Mesin Anda tidak mendukung mekanisme soket Berkeley, atau setidaknya itu
apa yang Konfigurasi pikirkan.
Daftar atribut yang tidak diakhiri
(F) Lexer menemukan sesuatu selain pengenal sederhana di awal sebuah
atribut, dan itu bukan titik koma atau awal blok. Mungkin Anda dihentikan
daftar parameter atribut sebelumnya terlalu cepat. Lihat atribut.
Parameter atribut yang tidak diakhiri dalam daftar atribut
(F) Lexer melihat karakter kurung buka (kiri) saat mengurai atribut
list, tetapi karakter kurung penutup (kanan) yang cocok tidak ditemukan. Kamu boleh
perlu menambahkan (atau menghapus) karakter garis miring terbalik agar tanda kurung Anda seimbang. Melihat
atribut.
Bilangan bulat terkompresi yang tidak diakhiri
(F) Argumen untuk membongkar("w",...) tidak sesuai dengan bilangan bulat terkompresi BER
format dan tidak dapat dikonversi ke bilangan bulat. Lihat "paket" di perlfunc.
Pembatas yang tidak diakhiri untuk dokumen di sini
(F) Pesan ini muncul ketika label dokumen di sini memiliki tanda kutip awal tetapi
tanda kutip terakhir tidak ada. Mungkin Anda menulis:
<<"huu
bukannya:
<<"aduh"
Pola \g... yang tidak diakhiri dalam regex; ditandai dengan <-- DI SINI dalam m/%s/
Pola \g{...} yang tidak diakhiri dalam regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Dalam ekspresi reguler, Anda memiliki "\g" yang tidak diikuti oleh grup yang tepat
referensi. Dalam kasus "\g{", kurung kurawal tidak ada; jika tidak, "\g"
harus diikuti oleh bilangan bulat. Perbaiki pola dan coba lagi.
Operator <> yang tidak dihentikan
(F) Lexer melihat tanda kurung siku kiri di tempat yang diharapkannya, jadi
itu mencari braket sudut kanan yang sesuai, dan tidak menemukannya. Peluang
apakah Anda meninggalkan beberapa tanda kurung yang diperlukan di awal baris, dan Anda benar-benar bermaksud
"kurang dari".
Argumen pola kata kerja yang tidak diakhiri dalam regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menggunakan pola dari bentuk "(*VERB:ARG)" tetapi tidak menghentikan polanya
dengan ")". Perbaiki pola dan coba lagi.
Pola kata kerja yang tidak diakhiri dalam regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menggunakan pola dari bentuk "(*VERB)" tetapi tidak mengakhiri pola dengan a
")". Perbaiki pola dan coba lagi.
untie dicoba sementara %d referensi dalam masih ada
(W untie) Salinan objek yang dikembalikan dari "dasi" (atau "diikat") masih berlaku ketika
"melepas" dipanggil.
Penggunaan: POSIX::%s(%s)
(F) Anda memanggil fungsi POSIX dengan argumen yang salah. Lihat "FUNGSI" di POSIX
for more information.
Penggunaan: Win32::%s(%s)
(F) Anda memanggil fungsi Win32 dengan argumen yang salah. Lihat Win32 untuk lebih lanjut
informasi.
$[ digunakan dalam %s (maksud Anda $] ?)
(Sintaks W) Anda menggunakan $[ dalam perbandingan, seperti:
jika ($[ > 5.006) {
...
}
Anda mungkin bermaksud menggunakan $] sebagai gantinya. $[ adalah dasar untuk mengindeks array. $] adalah
Nomor versi Perl dalam desimal.
Gunakan "%s" sebagai ganti "%s"
(F) Konstruksi terdaftar kedua tidak lagi legal. Gunakan yang pertama sebagai gantinya.
Tugas yang tidak berguna untuk sementara
(W misc) Anda menugaskan ke subrutin nilai, tetapi yang dikembalikan oleh subrutin adalah a
skalar sementara akan dibuang, jadi penugasan tidak berpengaruh.
Tidak berguna (?-%s) - jangan gunakan pengubah /%s di regex; ditandai dengan <-- DI SINI dalam m/%s/
(W regexp) Anda telah menggunakan pengubah internal seperti (?-o) yang tidak memiliki arti kecuali
dihapus dari seluruh regexp:
jika ($string =~ /(?-o)$pattern/o) { ... }
harus ditulis sebagai
jika ($string =~ /$pattern/) { ... }
<-- HERE menunjukkan keberadaan dalam ekspresi reguler masalah ditemukan.
Lihat perlre.
Lokalisasi yang tidak berguna dari %s
(Sintaks W) Lokalisasi nilai seperti "local($x=10)" adalah legal, tetapi pada kenyataannya
itu lokal() saat ini tidak berpengaruh. Ini mungkin berubah di beberapa titik di masa depan, tapi
sementara itu kode seperti itu tidak disarankan.
Tidak berguna (?%s) - gunakan pengubah /%s di regex; ditandai dengan <-- DI SINI dalam m/%s/
(W regexp) Anda telah menggunakan pengubah internal seperti (?o) yang tidak memiliki arti kecuali
diterapkan ke seluruh regexp:
jika ($string =~ /(?o)$pattern/) { ... }
harus ditulis sebagai
jika ($string =~ /$pattern/o) { ... }
<-- HERE menunjukkan keberadaan dalam ekspresi reguler masalah ditemukan.
Lihat perlre.
Penggunaan atribut "const" yang tidak berguna
(W misc) Atribut "const" tidak berpengaruh kecuali pada prototipe penutupan anonim.
Anda menerapkannya ke subrutin melalui atribut.pm. Ini hanya berguna di dalam
penangan atribut untuk subrutin anonim.
Penggunaan pengubah /d yang tidak berguna dalam operator transliterasi
(W misc) Anda telah menggunakan pengubah /d di mana daftar pencarian memiliki panjang yang sama dengan
daftar pengganti. Lihat perlop untuk informasi lebih lanjut tentang pengubah /d.
Penggunaan \E . yang tidak berguna
(W misc) Anda memiliki \E dalam string tanda kutip ganda tanpa "\U", "\L" atau "\Q"
mendahuluinya.
Penggunaan pengubah keserakahan yang tidak berguna '%c' di regex; ditandai dengan <-- DI SINI dalam m/%s/
(W regexp) Anda menentukan sesuatu seperti ini:
qr/a{3}?/
qr/b{1,1}+/
"?" dan "+" tidak memiliki efek apa pun, karena mereka mengubah apakah mencocokkan lebih banyak atau lebih sedikit
ketika ada pilihan, dan dengan menentukan untuk mencocokkan dengan tepat angka yang diberikan, tidak ada
ruang tersisa untuk pilihan.
Penggunaan %s yang tidak berguna dalam konteks batal
(W void) Anda melakukan sesuatu tanpa efek samping dalam konteks yang tidak melakukan apa-apa dengan
nilai kembalian, seperti pernyataan yang tidak mengembalikan nilai dari blok, atau
sisi kiri operator koma skalar. Sangat sering ini menunjukkan bukan kebodohan pada Anda
bagian, tetapi kegagalan Perl untuk mengurai program Anda seperti yang Anda pikirkan. Untuk
contoh, Anda akan mendapatkan ini jika Anda mencampur prioritas C Anda dengan prioritas Python dan
tersebut
$satu, $dua = 1, 2;
ketika Anda bermaksud mengatakan
($satu, $dua) = (1, 2);
Kesalahan umum lainnya adalah menggunakan tanda kurung biasa untuk membuat referensi daftar ketika
Anda harus menggunakan tanda kurung siku atau kurung kurawal, misalnya, jika Anda mengatakan
$array = (1,2);
ketika Anda seharusnya mengatakan
$array = [1,2];
Tanda kurung siku secara eksplisit mengubah nilai daftar menjadi nilai skalar, sementara
kurung tidak. Jadi ketika daftar tanda kurung dievaluasi dalam konteks skalar,
koma diperlakukan seperti operator koma C, yang membuang argumen kiri,
yang tidak Anda inginkan. Lihat perlref untuk lebih lanjut tentang ini.
Peringatan ini tidak akan dikeluarkan untuk konstanta numerik yang sama dengan 0 atau 1 karena mereka adalah
sering digunakan dalam pernyataan seperti
1 sementara sub_with_side_effects();
Konstanta string yang biasanya bernilai 0 atau 1 diperingatkan.
Penggunaan (?-p) yang tidak berguna di regex; ditandai dengan <-- DI SINI dalam m/%s/
(W regexp) Pengubah "p" tidak dapat dimatikan setelah disetel. Mencoba melakukannya adalah sia-sia.
Penggunaan pragma "kembali" yang tidak berguna
(W) Anda melakukan "menggunakan re;" tanpa argumen apapun. Itu tidak terlalu berguna.
Penggunaan sort yang tidak berguna dalam konteks skalar
(W void) Anda menggunakan sort dalam konteks skalar, seperti pada :
$x saya = urutkan @y;
Ini tidak terlalu berguna, dan Perl saat ini mengoptimalkannya.
Penggunaan %s yang tidak berguna tanpa nilai
(Sintaks W) Anda menggunakan Dorong() or tidak bergeser() fungsi tanpa argumen selain dari
array, seperti "Push(@x)" atau "unshift(@foo)". Itu biasanya tidak akan berpengaruh pada
array, jadi sama sekali tidak berguna. Mungkin pada prinsipnya Push(@tied_array)
bisa memiliki beberapa efek jika array diikat ke kelas yang mengimplementasikan metode PUSH.
Jika demikian, Anda dapat menulisnya sebagai "Push(@tied_array,())" untuk menghindari peringatan ini.
"gunakan" tidak diperbolehkan dalam ekspresi
(F) Kata kunci "gunakan" dikenali dan dieksekusi pada waktu kompilasi, dan tidak mengembalikan
nilai yang berguna. Lihat perlmod.
Penggunaan penetapan ke $[ tidak digunakan lagi
(D tidak digunakan lagi) Variabel $[ (indeks elemen pertama dalam array) tidak digunakan lagi.
Lihat "$[" di perlvar.
Penggunaan bare << berarti <<"" sudah tidak digunakan lagi
(D tidak digunakan lagi) Anda sekarang dianjurkan untuk menggunakan formulir yang dikutip secara eksplisit jika Anda ingin
gunakan baris kosong sebagai terminator dokumen di sini.
Penggunaan \b{} untuk lokal non-UTF-8 salah. Dengan asumsi lokal UTF-8
(W lokal) Anda mencocokkan ekspresi reguler menggunakan aturan lokal, dan Unicode
batas sedang dicocokkan, tetapi lokalnya bukan yang Unicode. Ini tidak membuat
nalar. Perl akan melanjutkan, dengan asumsi lokal Unicode (UTF-8), tetapi hasilnya bisa
yah salah kecuali jika lokalnya adalah ISO-8859-1 (Latin1) di mana ini
pesan palsu dan dapat diabaikan.
Penggunaan chdir('') atau chdir(undef) sebagai chdir() usang
(D usang) chdir() tanpa argumen didokumentasikan untuk diubah menjadi $ENV{HOME} atau
$ENV{LOGDIR}. chdir(undef) dan chdir('') berbagi perilaku ini, tetapi itu telah
usang. Dalam versi masa depan mereka hanya akan gagal.
Berhati-hatilah untuk memeriksa apa yang Anda lewati chdir() didefinisikan dan tidak kosong, kalau tidak Anda
mungkin menemukan diri Anda di direktori home Anda.
Penggunaan /c modifier tidak ada artinya di s///
(W regexp) Anda menggunakan pengubah /c dalam substitusi. Pengubah /c bukan
saat ini bermakna dalam substitusi.
Penggunaan pengubah /c tidak ada artinya tanpa /g
(W regexp) Anda menggunakan pengubah /c dengan operan regex, tetapi tidak menggunakan /g
pengubah. Saat ini, /c hanya bermakna jika /g digunakan. (Ini dapat berubah dalam
masa depan.)
Penggunaan daftar variabel tanpa koma tidak digunakan lagi
(D tidak digunakan lagi) Nilai yang Anda berikan ke format harus dipisahkan dengan koma, bukan hanya
sejajar pada satu garis.
Penggunaan setiap() pada hash setelah penyisipan tanpa mengatur ulang hash iterator menghasilkan tidak terdefinisi
laku
(S internal) Perilaku "each()" setelah penyisipan tidak ditentukan; mungkin melewatkan item,
atau mengunjungi item lebih dari sekali. Pertimbangkan untuk menggunakan "keys()" alih-alih "each()".
Penggunaan := untuk daftar atribut kosong tidak diperbolehkan
(F) Konstruksi "my $x := 42" digunakan untuk mengurai setara dengan "my $x : = 42"
(menerapkan daftar atribut kosong ke $x). Konstruksi ini tidak digunakan lagi di 5.12.0,
dan sekarang telah dibuat kesalahan sintaks, jadi ":=" dapat direklamasi sebagai operator baru di
masa depan.
Jika Anda memerlukan daftar atribut kosong, misalnya di pembuat kode, tambahkan spasi
sebelum "=".
Penggunaan nilai bebas dalam iterasi
(F) Mungkin Anda memodifikasi larik berulang di dalam loop? Kesalahan ini biasanya
disebabkan oleh kode seperti berikut:
@a = (3,4);
@a = () untuk (1,2,@a);
Anda tidak seharusnya mengubah array saat sedang diulang. Untuk kecepatan
dan alasan efisiensi, Perl secara internal tidak melakukan penghitungan referensi penuh
item berulang, maka menghapus item tersebut di tengah iterasi menyebabkan Perl
untuk melihat nilai bebas.
Penggunaan *glob{FILEHANDLE} tidak digunakan lagi
(D tidak digunakan lagi) Anda sekarang dianjurkan untuk menggunakan formulir *glob{IO} yang lebih pendek untuk mengakses
slot filehandle dalam typeglob.
Penggunaan /g modifier tidak ada artinya di split
(W regexp) Anda menggunakan pengubah /g pada pola untuk operator "split". Sejak
"split" selalu mencoba mencocokkan pola berulang kali, "/ g" tidak berpengaruh.
Penggunaan "goto" untuk melompat ke konstruksi sudah tidak digunakan lagi
(D tidak digunakan lagi) Menggunakan "goto" untuk melompat dari lingkup luar ke lingkup dalam adalah
ditinggalkan dan harus dihindari.
Penggunaan AUTOLOAD yang diwarisi untuk non-metode %s() sudah tidak digunakan lagi
(D tidak digunakan lagi) Sebagai fitur yang tidak disengaja (ahem), subrutin "AUTOLOAD" akan dicari
sebagai metode (menggunakan hierarki @ISA) bahkan ketika subrutin yang akan dimuat secara otomatis adalah
disebut sebagai fungsi biasa (misalnya "Foo::bar()"), bukan sebagai metode (misalnya "Foo->bar()" atau
"$obj->bar()").
Bug ini akan diperbaiki di masa mendatang dengan menggunakan pencarian metode hanya untuk metode'
"AUTOLOAD". Namun, ada basis signifikan dari kode yang ada yang mungkin menggunakan
perilaku lama. Jadi, sebagai langkah sementara, Perl saat ini mengeluarkan peringatan opsional
ketika non-metode menggunakan "AUTOLOAD" yang diwariskan.
Aturan sederhananya adalah: Warisan tidak akan berfungsi saat memuat otomatis non-metode. Itu
perbaikan sederhana untuk kode lama adalah: Dalam modul apa pun yang dulu bergantung pada pewarisan
"AUTOLOAD" untuk non-metode dari kelas dasar bernama "BaseClass", jalankan "*AUTOLOAD =
\&BaseClass::AUTOLOAD" saat startup.
Dalam kode yang saat ini mengatakan "gunakan AutoLoader; @ISA = qw(AutoLoader);" kamu harus menghapus
AutoLoader dari @ISA dan ubah "use AutoLoader;" untuk "menggunakan AutoLoader 'AUTOLOAD';".
Penggunaan %s dalam format printf tidak didukung
(F) Anda mencoba menggunakan fitur printf yang hanya dapat diakses dari C. Ini
biasanya berarti ada cara yang lebih baik untuk melakukannya di Perl.
Penggunaan %s tidak digunakan lagi
(D usang) Konstruksi yang ditunjukkan tidak lagi direkomendasikan untuk digunakan, umumnya
karena ada cara yang lebih baik untuk melakukannya, dan juga karena cara lama memiliki sisi buruk
efek.
Penggunaan karakter kontrol literal dalam nama variabel tidak digunakan lagi
Penggunaan karakter non-grafis literal dalam nama variabel sudah tidak digunakan lagi
(D tidak digunakan lagi) Menggunakan karakter literal non-grafis (termasuk kontrol) di sumbernya
untuk merujuk ke variabel ^FOO, seperti $^X dan "${^GLOBAL_PHASE}" sekarang tidak digunakan lagi.
(Kami menggunakan "^X" dan "^G" di sini untuk keterbacaan. Mereka sebenarnya mewakili yang tidak dapat dicetak
karakter kontrol, titik kode 0x18 dan 0x07, masing-masing; "^A" berarti
karakter kontrol yang titik kodenya 0x01.) Ini hanya memengaruhi kode seperti "$\cT", di mana
"\cT" adalah kontrol dalam kode sumber; "${"\cT"}" dan $^T tetap valid. Hal-hal yang
adalah non-kontrol dan juga tidak grafis adalah NO-BREAK SPACE dan SOFT HYPHEN, yang
sebelumnya hanya diperbolehkan karena alasan historis.
Penggunaan -l pada filehandle%s
(W io) Pegangan file mewakili file yang dibuka, dan ketika Anda membuka file itu sudah
melewati symlink apa pun yang mungkin Anda coba cari. Operasi kembali
"deff". Gunakan nama file sebagai gantinya.
Penggunaan $_ saya bersifat eksperimental
(S eksperimental::lexical_topic) Lexical $_ adalah fitur eksperimental dan perilakunya
dapat berubah atau bahkan dihapus dalam rilis Perl di masa mendatang. Lihat penjelasannya
di bawah "$_" di perlvar.
Penggunaan %s pada pegangan tanpa * tidak digunakan lagi
(D usang) Anda menggunakan "tie", "ted" atau "untie" pada skalar tetapi skalar itu terjadi
untuk menahan typeglob, yang berarti pegangan filenya akan diikat. Jika Anda bermaksud mengikat a
handle, gunakan * eksplisit seperti pada "tie *$handle".
Ini adalah bug lama yang telah dihapus di Perl 5.16, karena tidak ada cara untuk mengikat
skalar itu sendiri ketika memegang sebuah typeglob, dan tidak ada cara untuk melepaskan skalar yang memiliki
typeglob ditugaskan untuk itu. Jika Anda melihat pesan ini, Anda harus menggunakan versi yang lebih lama.
Penggunaan referensi "%s" sebagai indeks array
(W misc) Anda mencoba menggunakan referensi sebagai indeks array; ini mungkin bukan kamu
berarti, karena referensi dalam konteks numerik cenderung menjadi angka yang sangat besar, dan biasanya
menunjukkan kesalahan pemrogram.
Jika Anda benar-benar bersungguh-sungguh, secara eksplisit numify referensi Anda, seperti: $array[0+$ref].
Namun, peringatan ini tidak diberikan untuk objek yang kelebihan beban, karena Anda dapat kelebihan beban
operator numifikasi dan stringifikasi dan kemudian Anda mungkin tahu apa yang Anda
sedang melakukan.
Penggunaan status $_ bersifat eksperimental
(S eksperimental::lexical_topic) Lexical $_ adalah fitur eksperimental dan perilakunya
dapat berubah atau bahkan dihapus dalam rilis Perl di masa mendatang. Lihat penjelasannya
di bawah "$_" di perlvar.
Penggunaan argumen tercemar di %s tidak digunakan lagi
(W taint, deprecated) Anda telah menyediakan "system()" atau "exec()" dengan beberapa argumen
dan setidaknya salah satu dari mereka tercemar. Ini dulu diperbolehkan tetapi akan menjadi fatal
kesalahan dalam versi perl yang akan datang. Hapus argumen Anda. Lihat perlsec.
Penggunaan nilai yang tidak diinisialisasi%s
(W tidak diinisialisasi) Nilai yang tidak ditentukan digunakan seolah-olah sudah ditentukan. Dulu
ditafsirkan sebagai "" atau 0, tapi mungkin itu kesalahan. Untuk menekan peringatan ini
menetapkan nilai yang ditentukan untuk variabel Anda.
Untuk membantu Anda mengetahui apa yang tidak terdefinisi, Perl akan mencoba memberi tahu Anda nama dari
variabel (jika ada) yang tidak terdefinisi. Dalam beberapa kasus tidak dapat melakukan ini, jadi juga
memberi tahu Anda operasi apa yang Anda gunakan dengan nilai yang tidak ditentukan. Namun, perhatikan bahwa perl
mengoptimalkan program Anda dan operasi yang ditampilkan dalam peringatan mungkin belum tentu
muncul secara harfiah dalam program Anda. Misalnya, "bahwa $foo" biasanya dioptimalkan menjadi
""that " . $foo", dan peringatan akan merujuk ke operator "concatenation (.)", bahkan
meskipun tidak ada "." dalam program Anda.
"gunakan 'ketat'" adalah eksperimental
(S eksperimental::re_strict) Hal-hal yang berbeda ketika ekspresi reguler
pola dikompilasi di bawah 'ketat' dapat berubah dalam rilis Perl mendatang di
cara-cara yang tidak kompatibel. Ini berarti bahwa pola yang dikompilasi hari ini mungkin tidak di masa depan
rilis Perl. Peringatan ini untuk mengingatkan Anda akan risiko itu.
Gunakan \x{...} untuk lebih dari dua karakter hex di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Dalam ekspresi reguler, Anda mengatakan sesuatu seperti
(?[ [ \xBEEF ] ])
Perl tidak yakin apakah maksud Anda ini
(?[ [ \x{Daging Sapi} ] ])
atau jika Anda bermaksud ini
(?[ [ \x{BE} EF ] ])
Anda perlu menambahkan kurung kurawal atau kosong untuk memperjelas.
Hanya menggunakan karakter pertama yang dikembalikan oleh \N{} di kelas karakter di regex; ditandai dengan
<-- DI SINI dalam m/%s/
(W regexp) Karakter Unicode bernama lolos "(\N{...})" dapat mengembalikan multi-karakter
urutan. Meskipun kelas karakter seharusnya hanya cocok dengan satu karakter
input, Perl akan mencocokkan semuanya dengan benar, kecuali ketika kelas dibalik
("[^...]"), atau escape adalah titik awal atau akhir akhir dari suatu range. Untuk ini,
apa yang seharusnya terjadi tidak jelas sama sekali. Dalam keadaan ini, Perl membuang semua kecuali—
karakter pertama dari urutan yang dikembalikan, yang sepertinya bukan yang Anda inginkan.
Menggunakan /u untuk '%s' sebagai ganti /%s di regex; ditandai dengan <-- DI SINI dalam m/%s/
(W regexp) Anda menggunakan batas Unicode ("\b{...}" atau "\B{...}") di sebagian
ekspresi reguler di mana pengubah set karakter "/a" atau "/aa" berlaku.
Kedua pengubah ini menunjukkan interpretasi ASCII, dan ini tidak masuk akal untuk
definisi Unicode. Ekspresi reguler yang dihasilkan akan dikompilasi sehingga
batas menggunakan semua Unicode. Tidak ada bagian lain dari ekspresi reguler yang terpengaruh.
Menggunakan !~ dengan %s tidak masuk akal
(F) Menggunakan operator "!~" dengan "s///r", "tr///r" atau "y///r" saat ini dicadangkan
untuk digunakan di masa mendatang, karena perilaku yang tepat belum diputuskan. (Cukup mengembalikan
kebalikan boolean dari string yang dimodifikasi biasanya tidak terlalu berguna.)
UTF-16 pengganti U+%X
(Pengganti S) Anda memiliki pengganti UTF-16 dalam konteks di mana mereka tidak dianggap
dapat diterima. Poin kode ini, antara U+D800 dan U+DFFF (inklusif), digunakan oleh
Unicode hanya untuk UTF-16. Namun, Perl secara internal mengizinkan semua kode integer yang tidak ditandatangani
poin (hingga batas ukuran yang tersedia di platform Anda), termasuk pengganti. Tetapi
ini dapat menyebabkan masalah saat menjadi input atau output, yang kemungkinan besar di mana ini
pesan datang dari. Jika Anda benar-benar tahu apa yang Anda lakukan, Anda dapat mematikan ini
peringatan dengan "tidak ada peringatan 'pengganti';".
Nilai %s dapat berupa "0"; tes dengan didefinisikan()
(W misc) Dalam ekspresi kondisional, Anda menggunakan , <*> (glob), "setiap()", atau
"readdir()" sebagai nilai boolean. Masing-masing konstruksi ini dapat mengembalikan nilai "0";
itu akan membuat ekspresi bersyarat salah, yang mungkin bukan apa yang Anda
disengaja. Saat menggunakan konstruksi ini dalam ekspresi bersyarat, uji nilainya
dengan operator "didefinisikan".
Nilai simbol CLI "%s" terlalu panjang
(W misc) Peringatan khusus untuk VMS. Perl mencoba membaca nilai elemen %ENV
dari tabel simbol CLI, dan menemukan string yang dihasilkan lebih panjang dari 1024 karakter.
Nilai kembalian telah dipotong menjadi 1024 karakter.
nilai pada referensi adalah eksperimental
(S eksperimental::autoderef) "nilai" dengan argumen skalar adalah eksperimental dan mungkin
mengubah atau dihapus dalam versi Perl mendatang. Jika Anda ingin mengambil risiko menggunakan
fitur ini, cukup nonaktifkan peringatan ini:
tidak ada peringatan "eksperimental::autoderef";
Variabel "%s" tidak tersedia
(Penutupan W) Selama kompilasi, subrutin atau eval bernama dalam mencoba untuk
menangkap leksikal luar yang saat ini tidak tersedia. Hal ini dapat terjadi untuk salah satu dari
dua alasan. Pertama, leksikal luar dapat dideklarasikan dalam anonim luar
subrutin yang belum dibuat. (Ingat bahwa subs bernama dibuat di
waktu kompilasi, sementara subs anonim dibuat saat run-time.) Misalnya,
sub { $a saya; sub f { $a } }
Pada saat f dibuat, ia tidak dapat menangkap nilai $a saat ini, karena
subrutin anonim belum dibuat. Sebaliknya, berikut ini tidak akan memberikan
peringatan karena subrutin anonim sekarang telah dibuat dan aktif:
sub { $a saya; eval 'sub f { $a }' }->();
Situasi kedua disebabkan oleh evaluasi mengakses variabel yang telah keluar dari
ruang lingkup, misalnya
sub f {
saya $a;
sub { evaluasi '$a' }
}
f()->();
Di sini, ketika '$a' di eval sedang dikompilasi, f() saat ini tidak sedang
dieksekusi, jadi $a-nya tidak tersedia untuk ditangkap.
Variabel "%s" tidak diimpor%s
(S misc) Dengan berlakunya "gunakan ketat", Anda merujuk ke variabel global yang Anda
tampaknya diimpor dari modul lain, karena sesuatu yang lain dari
nama yang sama (biasanya subrutin) diekspor oleh modul itu. Ini biasanya berarti Anda menempatkan
karakter lucu yang salah di depan variabel Anda.
Panjang variabel terlihat di belakang tidak diimplementasikan dalam regex m/%s/
(F) Lookbehind hanya diperbolehkan untuk subekspresi yang panjangnya tetap dan diketahui di
waktu kompilasi. Untuk tampilan positif di belakang, Anda dapat menggunakan konstruksi regex "\ K" sebagai cara
untuk mendapatkan fungsi yang setara. Lihat "(?<=pola) \K" di perlre.
Ada aturan Unicode yang tidak jelas di bawah "/i" yang dapat cocok secara bervariasi, tetapi Anda
mungkin tidak berpikir bisa. Misalnya, substring "ss" dapat cocok dengan karakter tunggal
LATIN KECIL HURUF SHARP S. Ada urutan lain dari karakter ASCII yang dapat
mencocokkan karakter ligatur tunggal, seperti pencocokan FFI LIGATUR KECIL LATIN
"qr/fi/i". Mulai dari Perl v5.16, jika Anda hanya peduli dengan kecocokan ASCII, tambahkan
Pengubah "/aa" ke regex akan mengecualikan semua kecocokan yang tidak jelas ini, sehingga mendapatkan
menyingkirkan pesan ini. Anda juga dapat mengatakan "gunakan re qw(/aa)" untuk menerapkan "/aa" ke semua reguler
ekspresi yang dikompilasi dalam ruang lingkupnya. Lihat ulang.
Variabel "%s" %s menutupi deklarasi sebelumnya dalam %s yang sama
(W misc) Variabel "my", "our" atau "state" telah dideklarasikan ulang dalam lingkup saat ini atau
pernyataan, secara efektif menghilangkan semua akses ke instance sebelumnya. Ini
hampir selalu kesalahan ketik. Perhatikan bahwa variabel sebelumnya akan tetap ada
sampai akhir lingkup atau sampai semua referensi penutupan dimusnahkan.
Sintaks variabel
(A) Anda tidak sengaja menjalankan skrip Anda csh bukannya Perl. Periksalah #!
baris, atau masukkan sendiri skrip Anda ke Perl secara manual.
Variabel "%s" tidak akan tetap dibagikan
(Penutupan W) Bagian dalam (bersarang) bernama subrutin merujuk pada variabel leksikal
didefinisikan dalam subrutin bernama luar.
Ketika subrutin dalam dipanggil, ia akan melihat nilai dari subrutin luar
variabel seperti sebelum dan selama panggilan *pertama* ke subrutin luar; di dalam
kasus, setelah panggilan pertama ke subrutin luar selesai, bagian dalam dan luar
subrutin tidak akan lagi berbagi nilai umum untuk variabel. Dengan kata lain,
variabel tidak akan dibagikan lagi.
Masalah ini biasanya dapat diselesaikan dengan membuat subrutin dalam menjadi anonim, menggunakan
sintaks "sub {}". Ketika subs anonim dalam yang merujuk variabel di luar
subrutin dibuat, mereka secara otomatis rebound ke nilai saat ini seperti
variabel.
argumen vektor tidak didukung dengan versi alfa
(S printf) Format %vd (s)printf tidak mendukung objek versi dengan bagian alfa.
Pola kata kerja '%s' memiliki argumen wajib di regex; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menggunakan pola kata kerja yang membutuhkan argumen. Berikan argumen atau cek
bahwa Anda menggunakan kata kerja yang tepat.
Pola kata kerja '%s' mungkin tidak memiliki argumen dalam ekspresi reguler; ditandai dengan <-- DI SINI dalam m/%s/
(F) Anda menggunakan pola kata kerja yang tidak diperbolehkan argumen. Hapus argumen atau
periksa apakah Anda menggunakan kata kerja yang tepat.
Nomor versi harus berupa angka konstan
(P) Upaya untuk menerjemahkan pernyataan "gunakan Modul nn LIST" menjadi padanannya
Blok "BEGIN" menemukan inkonsistensi internal dengan nomor versi.
String versi '%s' berisi data yang tidak valid; mengabaikan: '%s'
(W misc) String versi berisi karakter yang tidak valid di akhir, yang sedang
diabaikan.
Peringatan: ada yang salah
(W) Anda lulus memperingatkan() string kosong (setara dengan "peringatkan """) atau Anda menyebutnya
tanpa argumen dan $@ kosong.
Peringatan: tidak dapat menutup filehandle %s dengan benar
(S) Yang tersirat Menutup() dilakukan oleh an Buka() mendapat indikasi kesalahan pada Menutup().
Ini biasanya menunjukkan sistem file Anda kehabisan ruang disk.
Peringatan: tidak dapat menutup filehandle dengan benar: %s
Peringatan: tidak dapat menutup filehandle %s dengan benar: %s
(S io) Terjadi kesalahan saat Perl secara implisit menutup filehandle. Ini biasanya
menunjukkan sistem file Anda kehabisan ruang disk.
Peringatan: Penggunaan "%s" tanpa tanda kurung tidak jelas
(S ambigu) Anda menulis operator unary diikuti oleh sesuatu yang terlihat seperti a
operator biner yang bisa juga diartikan sebagai operator term atau unary.
Misalnya, jika Anda tahu bahwa fungsi rand memiliki argumen default 1.0, dan
Anda menulis
acak + 5;
Anda mungkin BERPIKIR Anda menulis hal yang sama dengan
acak() + 5;
tetapi pada kenyataannya, Anda punya
Rand(+5);
Jadi, masukkan dalam tanda kurung untuk mengatakan apa yang sebenarnya Anda maksudkan.
kapan eksperimental
(S eksperimental::smartmatch) "kapan" bergantung pada smartmatch, yang eksperimental.
Selain itu, ia memiliki beberapa kasus khusus yang mungkin tidak langsung terlihat, dan
perilaku mereka dapat berubah atau bahkan dihapus dalam rilis Perl di masa mendatang. Lihat
penjelasan di bawah "Rincian Eksperimental tentang yang diberikan dan kapan" di perlsyn.
Karakter lebar di %s
(S utf8) Perl bertemu dengan karakter lebar (>255) ketika tidak mengharapkannya. Peringatan ini
secara default aktif untuk I/O (seperti print). Cara termudah untuk menenangkan peringatan ini adalah
cukup tambahkan layer ":utf8" ke output, misalnya "binmode STDOUT, ':utf8'".
Cara lain untuk mematikan peringatan adalah dengan menambahkan "tidak ada peringatan 'utf8';" tapi itu sering
lebih dekat dengan kecurangan. Secara umum, Anda seharusnya secara eksplisit menandai filehandle
dengan pengkodean, lihat buka dan "binmode" di perlfunc.
Karakter lebar (U+%X) dalam %s
(W lokal) Sementara di satu byte lokal (yaitu, non-UTF-8), multi-byte
karakter yang dihadapi. Perl menganggap karakter ini sebagai Unicode yang ditentukan
titik kode. Menggabungkan lokal non-UTF-8 dan Unicode berbahaya. Hampir pasti
beberapa karakter akan memiliki dua representasi yang berbeda. Misalnya, dalam ISO
8859-7 (Yunani) lokal, titik kode 0xC3 mewakili Gamma Kapital. Tapi begitu juga
melakukan 0x393. Ini akan membuat perbandingan string tidak dapat diandalkan.
Anda mungkin perlu mencari tahu bagaimana karakter multi-byte ini bercampur dengan . Anda
lokal byte tunggal (atau mungkin Anda mengira Anda memiliki lokal UTF-8, tetapi Perl
tidak setuju).
Dalam []-panjang '%c' tidak diperbolehkan
(F) Hitungan dalam template (un)pack dapat diganti dengan "[TEMPLATE]" hanya jika
"TEMPLATE" selalu cocok dengan jumlah byte yang sama yang dapat ditentukan dari
templatenya saja. Ini tidak mungkin jika berisi salah satu kode @, /, U, u,
w atau *-panjang. Mendesain ulang template.
menulis() pada filehandle tertutup %s
(W ditutup) Filehandle yang Anda tulis akan ditutup sendiri beberapa saat sebelumnya.
Periksa aliran kontrol Anda.
%s "\x%X" tidak dipetakan ke Unicode
(S utf8) Saat membaca dalam penyandian yang berbeda, Perl mencoba memetakan semuanya menjadi
karakter Unicode. Byte yang Anda baca tidak legal dalam penyandian ini. Untuk
contoh
utf8 "\xE4" tidak dipetakan ke Unicode
jika Anda mencoba membaca dalam a-diaereses Latin-1 sebagai UTF-8.
'X' di luar string
(F) Anda memiliki template (un)pack yang menentukan posisi relatif sebelum
awal string sedang (tidak) dikemas. Lihat "paket" di perlfunc.
'x' di luar string di unpack
(F) Anda memiliki template paket yang menentukan posisi relatif setelah akhir
string sedang dibongkar. Lihat "paket" di perlfunc.
ANDA BELUM MENONAKTIFKAN SET-ID SCRIPTS DI KERNEL!
(F) Dan Anda mungkin tidak akan pernah melakukannya, karena Anda mungkin tidak memiliki sumber untuk Anda
kernel, dan vendor Anda mungkin tidak mengerti apa yang Anda inginkan. terbaikmu
taruhannya adalah meletakkan pembungkus setuid C di sekitar skrip Anda.
Anda perlu mengutip "%s"
(Sintaks W) Anda menetapkan kata sandi sebagai nama penangan sinyal. Sayangnya, kamu
sudah memiliki subrutin dari nama itu yang dideklarasikan, yang berarti Perl 5 akan mencoba untuk
panggil subrutin ketika tugas dijalankan, yang mungkin bukan yang Anda
ingin. (Jika itu yang Anda inginkan, beri tanda & di depan.)
Nomor acak Anda tidak acak itu
(F) Saat mencoba menginisialisasi benih acak untuk hash, Perl tidak bisa mendapatkan
keacakan dari sistem Anda. Ini biasanya menunjukkan Sesuatu yang Sangat Salah.
Panjang nol \N{} dalam ekspresi reguler; ditandai dengan <-- DI SINI dalam m/%s/
(F) Karakter Unicode yang diberi nama lolos ("\N{...}") dapat mengembalikan urutan panjang nol.
Pelarian seperti itu digunakan dalam kelas karakter yang diperluas, yaitu "(?[...])", yang bukan
diizinkan. Periksa apakah pelarian yang benar telah digunakan, dan charname yang benar
penangan dalam ruang lingkup. <-- HERE menunjukkan keberadaan dalam ekspresi reguler the
masalah ditemukan.
Gunakan perldiag online menggunakan layanan onworks.net