/
perldiag.pod
executable file
·12574 lines (8124 loc) · 362 KB
/
perldiag.pod
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
=encoding euc-jp
=head1 NAME
=begin original
perldiag - various Perl diagnostics
=end original
perldiag - さまざまな Perl 診断メッセージ
=head1 DESCRIPTION
=begin original
These messages are classified as follows (listed in increasing order of
desperation):
=end original
これらのメッセージは以下のように分類されます (重要度が増す順に
並べてあります):
=begin original
(W) A warning (optional).
(D) A deprecation (enabled by default).
(S) A severe warning (enabled by default).
(F) A fatal error (trappable).
(P) An internal error you should never see (trappable).
(X) A very fatal error (nontrappable).
(A) An alien error message (not generated by Perl).
=end original
(W) 警告 (オプション)
(D) 非推奨 (デフォルトでは有効)
(S) 重大な警告 (デフォルトでは有効)
(F) 致命的エラー (トラップ可能)
(P) 起こるはずのない内部エラー (トラップ可能)
(X) 重大致命的エラー (トラップ不可能)
(A) 外部エラーメッセージ (Perl 以外で生成されたもの)
=begin original
The majority of messages from the first three classifications above
(W, D & S) can be controlled using the C<warnings> pragma.
=end original
上記のうち、最初の三つ (W, D, S) に分類されるメッセージの大部分は
C<warings> プラグマで制御できます。
=begin original
If a message can be controlled by the C<warnings> pragma, its warning
category is included with the classification letter in the description
below.
=end original
メッセージが C<warnings> プラグマで制御できる場合、警告カテゴリは以下の
説明で分類文字と共に記されています。
=begin original
Optional warnings are enabled by using the C<warnings> pragma or the B<-w>
and B<-W> switches. Warnings may be captured by setting C<$SIG{__WARN__}>
to a reference to a routine that will be called on each warning instead
of printing it. See L<perlvar>.
=end original
C<warnings> プラグマか B<-w> と B<-W> のオプションを使うと追加の警告が
有効になります。
警告は、表示する変わりに警告が出るたびに呼び出されるサブルーチンへの
リファレンスを C<$SIG{__WARN__}> にセットすることで捕捉できます。
L<perlvar> を参照してください。
=begin original
Severe warnings are always enabled, unless they are explicitly disabled
with the C<warnings> pragma or the B<-X> switch.
=end original
C<warnings> プラグマか B<-X> オプションで明示的に無効にされない限り、
厳しい警告は常に有効です。
=begin original
Trappable errors may be trapped using the eval operator. See
L<perlfunc/eval>. In almost all cases, warnings may be selectively
disabled or promoted to fatal errors using the C<warnings> pragma.
See L<warnings>.
=end original
トラップ可能なエラーは評価演算子を使ってトラップできます。
L<perlfunc/eval> を参照してください。
ほとんど全ての場合、警告は C<warnings> プラグマを使うことで選択的に
無効にしたり致命的エラーに昇格させたりできます。
L<warnings> を参照してください。
=begin original
The messages are in alphabetical order, without regard to upper or
lower-case. Some of these messages are generic. Spots that vary are
denoted with a %s or other printf-style escape. These escapes are
ignored by the alphabetical order, as are all characters other than
letters. To look up your message, just ignore anything that is not a
letter.
=end original
メッセージは大文字小文字を無視してアルファベット順に並んでいます。
これらの中には一般的なものもあります。
変化する部分は %s またはその他の printf スタイルの表記をしています。
これらの表記や、その他の英文字以外の文字は並び順に関しては
無視されています。
メッセージを探すには、英文字以外は無視してください。
=over 4
=item accept() on closed socket %s
=begin original
(W closed) You tried to do an accept on a closed socket. Did you forget
to check the return value of your socket() call? See
L<perlfunc/accept>.
=end original
(W closed) クローズされたソケットに accept を行なおうとしました。
socket() の呼び出し時に、返却値のチェックを忘れたのではありませんか。
L<perlfunc/accept> を参照してください。
=item Allocation too large: %lx
=begin original
(X) You can't allocate more than 64K on an MS-DOS machine.
=end original
(X) MS-DOS マシンでは、64K を越えるメモリアロケートをおこなえません。
=item '%c' allowed only after types %s
=begin original
(F) The modifiers '!', '<' and '>' are allowed in pack() or unpack() only
after certain types. See L<perlfunc/pack>.
=end original
(F) pack() や unpack() での '!', '<', '>''!' の修飾子は特定のタイプの
後にのみつけることができます。
L<perlfunc/pack> を参照してください。
=item Ambiguous call resolved as CORE::%s(), qualify as such or use &
=begin original
(W ambiguous) A subroutine you have declared has the same name as a Perl
keyword, and you have used the name without qualification for calling
one or the other. Perl decided to call the builtin because the
subroutine is not imported.
=end original
(W ambiguous) 定義したサブルーチンの名前が Perl のキーワードと同じで、
どちらかを呼び出すために修飾なしで名前を使っています。
Perl は、サブルーチンがインポートされたものではないので、組み込みのものを
呼び出すことにしました。
=begin original
To force interpretation as a subroutine call, either put an ampersand
before the subroutine name, or qualify the name with its package.
Alternatively, you can import the subroutine (or pretend that it's
imported with the C<use subs> pragma).
=end original
サブルーチン呼び出しとして解釈することを強制させるためには、サブルーチン名の
前にアンパサンドをつけるか、名前をパッケージ名で修飾してください。
他の方法として、サブルーチンをインポートする(あるいは C<use subs>
プラグマを使ってインポートされたふりをする)方法もあります。
=begin original
To silently interpret it as the Perl operator, use the C<CORE::> prefix
on the operator (e.g. C<CORE::log($x)>) or declare the subroutine
to be an object method (see L<perlsub/"Subroutine Attributes"> or
L<attributes>).
=end original
警告なしに Perl 演算子として解釈させるためには、(C<CORE::log($x)> のように)
演算子に C<CORE::> 接頭辞をつけるか、サブルーチンをオブジェクト
メソッド(L<perlsub/"Subroutine Attributes"> や L<attributes> を
参照してください)として定義してください。
=item Ambiguous range in transliteration operator
=begin original
(F) You wrote something like C<tr/a-z-0//> which doesn't mean anything at
all. To include a C<-> character in a transliteration, put it either
first or last. (In the past, C<tr/a-z-0//> was synonymous with
C<tr/a-y//>, which was probably not what you would have expected.)
=end original
(F) C<tr/a-z-0//> のような、何の意味もないことをしようとしました。
文字変換の文字に C<-> を加える時は、最初か最後に置いてください。
(以前は C<tr/a-z-0//> は C<tr/a-y//> と同義でしたが、これはおそらく
予想していたものと違うでしょう。)
=item Ambiguous use of %s resolved as %s
=begin original
(W ambiguous)(S) You said something that may not be interpreted the way
you thought. Normally it's pretty easy to disambiguate it by supplying
a missing quote, operator, parenthesis pair or declaration.
=end original
(W ambiguous)(S) 何か、あなたが考えているようには解釈できないものが
ありました。
普通は、不足しているクォート、演算子、かっこ、宣言を追加することでかなり
簡単にあいまいさを解消できます。
=item '|' and '<' may not both be specified on command line
=begin original
(F) An error peculiar to VMS. Perl does its own command line
redirection, and found that STDIN was a pipe, and that you also tried to
redirect STDIN using '<'. Only one STDIN stream to a customer, please.
=end original
(F) VMS に固有のエラーです。
Perl は独自にコマンドラインのリダイレクトを扱っていて、STDIN がパイプで
あることを発見しましたが、さらに '<' を使って STDIN をリダイレクトしようと
しました。
STDIN ストリームは一つだけにしてください; お願いします。
=item '|' and '>' may not both be specified on command line
=begin original
(F) An error peculiar to VMS. Perl does its own command line
redirection, and thinks you tried to redirect stdout both to a file and
into a pipe to another command. You need to choose one or the other,
though nothing's stopping you from piping into a program or Perl script
which 'splits' output into two streams, such as
=end original
(F) VMS に固有のエラーです。
Perl は独自にコマンドラインのリダイレクトを扱っていて、STDOUT を
ファイルと他のコマンドへのパイプと両方にリダイレクトしようとしていると
判断しました。
どちらかを選ぶ必要がありますが、以下のように出力を二つのストリームに
「分割」するプログラムや Perl スクリプトにパイプすることを止めるものは
何もありません。
open(OUT,">$ARGV[0]") or die "Can't write to $ARGV[0]: $!";
while (<STDIN>) {
print;
print OUT;
}
close OUT;
=item Applying %s to %s will act on scalar(%s)
=begin original
(W misc) The pattern match (C<//>), substitution (C<s///>), and
transliteration (C<tr///>) operators work on scalar values. If you apply
one of them to an array or a hash, it will convert the array or hash to
a scalar value (the length of an array, or the population info of a
hash) and then work on that scalar value. This is probably not what
you meant to do. See L<perlfunc/grep> and L<perlfunc/map> for
alternatives.
=end original
(W misc) パターンマッチ (C<//>), 置換 (C<s///>), 文字置換
(C<tr///>) 演算子はスカラ値に対して動作します。
これらを配列やハッシュに適用すると、配列やハッシュをスカラ値 (配列の長さか
ハッシュの大きさの情報) に変換し、そのスカラ値に対して動作します。
これはおそらくしたいこととは違うでしょう。
代替案については L<perlfunc/grep> と L<perlfunc/map> を参照してください。
=item Args must match #! line
=begin original
(F) The setuid emulator requires that the arguments Perl was invoked
with match the arguments specified on the #! line. Since some systems
impose a one-argument limit on the #! line, try combining switches;
for example, turn C<-w -U> into C<-wU>.
=end original
(F) setuid エミュレータでは、Perl を起動したときの引数と、#! の行で
指定された引数はマッチすることが要求されます。
#! 行の 1 引数制限があるシステムがあるので、組み合わせスイッチを
試してみてください;
例えば、C<-w -U> を C<-wU> にしてください。
=item Arg too short for msgsnd
=begin original
(F) msgsnd() requires a string at least as long as sizeof(long).
=end original
(F) msgsnd() に渡す文字列は、少なくとも sizeof(long) の長さが必要です。
=item %s argument is not a HASH or ARRAY element or a subroutine
=begin original
(F) The argument to exists() must be a hash or array element or a
subroutine with an ampersand, such as:
=end original
(F) exists() の引数は以下のように、ハッシュや配列の要素か、
アンパサンド付きのサブルーチンでなければなりません:
$foo{$bar}
$ref->{"susie"}[12]
&do_something
=item %s argument is not a HASH or ARRAY element or slice
=begin original
(F) The argument to delete() must be either a hash or array element,
such as:
=end original
(F) delete() の引数は以下のようにハッシュか配列の要素であるか:
$foo{$bar}
$ref->{"susie"}[12]
=begin original
or a hash or array slice, such as:
=end original
あるいは以下のようにハッシュか配列のスライスでなければなりません:
@foo[$bar, $baz, $xyzzy]
@{$ref->[12]}{"susie", "queue"}
=item %s argument is not a subroutine name
=begin original
(F) The argument to exists() for C<exists &sub> must be a subroutine
name, and not a subroutine call. C<exists &sub()> will generate this
error.
=end original
(F) C<exists &sub> の形の exists() の引数はサブルーチン呼び出しではなく、
サブルーチン名でなければなりません。
C<exists &sub()> とするとこのエラーが生成されます。
=item Argument "%s" isn't numeric%s
=begin original
(W numeric) The indicated string was fed as an argument to an operator
that expected a numeric value instead. If you're fortunate the message
will identify which operator was so unfortunate.
=end original
(W numeric) ここに示した文字列は、数値が必要な演算子の引数として、
与えられました。
運がよければ、このメッセージによって、どの演算子が問題となったかが
わかります。
=item Argument list not closed for PerlIO layer "%s"
=begin original
(W layer) When pushing a layer with arguments onto the Perl I/O system you
forgot the ) that closes the argument list. (Layers take care of transforming
data between external and internal representations.) Perl stopped parsing
the layer list at this point and did not attempt to push this layer.
If your program didn't explicitly request the failing operation, it may be
the result of the value of the environment variable PERLIO.
=end original
(W layer) Perl I/O システムに層を引数付きで追加するときに、引数リストを
閉じる ) を忘れています。
(層はデータの外部表現と内部表現の変換を扱います。)
Perl はここで層のリストのパースを中止し、この層の追加は行われませんでした。
明示的に失敗する操作を要求していないのであれば、これは環境変数 PERLIO の
値が原因かもしれません。
=item Array @%s missing the @ in argument %d of %s()
=begin original
(D deprecated) Really old Perl let you omit the @ on array names in some
spots. This is now heavily deprecated.
=end original
(D deprecated) 本当に古い Perl では、場所によっては、配列名の @ を
省略できました。
これは廃止予定です。
=item assertion botched: %s
=begin original
(P) The malloc package that comes with Perl had an internal failure.
=end original
(P) Perl に付属の malloc ルーティンが内部エラーを起こしました。
=item Assertion failed: file "%s"
=begin original
(P) A general assertion failed. The file in question must be examined.
=end original
(P) 一般的なアサーションが失敗しました。
問題の file を調べる必要があります。
=item Assignment to both a list and a scalar
=begin original
(F) If you assign to a conditional operator, the 2nd and 3rd arguments
must either both be scalars or both be lists. Otherwise Perl won't
know which context to supply to the right side.
=end original
(F) 条件演算子へ代入を行なう場合には、二つめの引数と、3 つめの引数は、
ともにスカラか、ともにリストでなければなりません。
そうでないと、Perl は右辺のコンテキストを決めることができません。
=item A thread exited while %d threads were running
=begin original
(W threads)(S) When using threaded Perl, a thread (not necessarily the main
thread) exited while there were still other threads running.
Usually it's a good idea to first collect the return values of the
created threads by joining them, and only then exit from the main
thread. See L<threads>.
=end original
(W threads)(S) スレッドが有効な Perl を使っているときに、他のスレッドが
まだ動いている状態で、あるスレッド(メインスレッドには限りません)が
終了しました。
普通は、作成したスレッドに join することで返り値を集めて、それから
メインスレッドから終了するのがよい考えです。
L<threads> を参照してください。
=item Attempt to access disallowed key '%s' in a restricted hash
=begin original
(F) The failing code has attempted to get or set a key which is not in
the current set of allowed keys of a restricted hash.
=end original
(F) 制限ハッシュで許されているキーの集合に含まれていないキーに対して
取得または設定しようとして失敗しました。
=item Attempt to bless into a reference
=begin original
(F) The CLASSNAME argument to the bless() operator is expected to be
the name of the package to bless the resulting object into. You've
supplied instead a reference to something: perhaps you wrote
=end original
(F) bless() 演算子の CLASSNAME 引数は結果のオブジェクトに bless する
パッケージ名を想定しています。
そこに何かへのリファレンスが与えられました:
おそらく以下のようにしたのでしょう:
bless $self, $proto;
=begin original
when you intended
=end original
以下を意図していたはずです:
bless $self, ref($proto) || $proto;
=begin original
If you actually want to bless into the stringified version
of the reference supplied, you need to stringify it yourself, for
example by:
=end original
実際に与えられたリファレンスを文字列化したものに bless したい場合は、
以下のようにして自分で文字列化する必要があります:
bless $self, "$proto";
=item Attempt to delete disallowed key '%s' from a restricted hash
=begin original
(F) The failing code attempted to delete from a restricted hash a key
which is not in its key set.
=end original
(F) 制限ハッシュで、キー集合に含まれていないキーから削除しようとしました。
=item Attempt to delete readonly key '%s' from a restricted hash
=begin original
(F) The failing code attempted to delete a key whose value has been
declared readonly from a restricted hash.
=end original
(F) 制限ハッシュで、読み込み専用として宣言されている値のキーを
削除しようとしました。
=item Attempt to free non-arena SV: 0x%lx
=begin original
(P internal) All SV objects are supposed to be allocated from arenas
that will be garbage collected on exit. An SV was discovered to be
outside any of those arenas.
=end original
(P internal) すべての SV オブジェクトは、exit 時にガーベジコレクションが
行なわれるアリーナに割り当てるようになっています。
ある SV が、そういったアリーナに入っていないことが、見つかりました。
=item Attempt to free nonexistent shared string
=begin original
(P internal) Perl maintains a reference counted internal table of
strings to optimize the storage and access of hash keys and other
strings. This indicates someone tried to decrement the reference count
of a string that can no longer be found in the table.
=end original
(P internal) Perl はストレージおよびハッシュキーとその他の文字列への
アクセスを最適化するために、文字列の参照数テーブルを管理しています。
これは誰かがもうテーブルにない文字列の参照カウントを減らそうとしたことを
示します。
=item Attempt to free temp prematurely
=begin original
(W debugging) Mortalized values are supposed to be freed by the
free_tmps() routine. This indicates that something else is freeing the
SV before the free_tmps() routine gets a chance, which means that the
free_tmps() routine will be freeing an unreferenced scalar when it does
try to free it.
=end original
(W debugging) 消滅する値は、free_tmps() ルーティンで解放されるように
なっています。
このメッセージは、free_tmps() ルーティンの前に何ものかが、SV を
解放しようとしていることを示していて、これは、free_tmps() が
解放しようとしたときには、どこからも参照されていないスカラを
解放することになるということです。
=item Attempt to free unreferenced glob pointers
=begin original
(P internal) The reference counts got screwed up on symbol aliases.
=end original
(P internal) シンボルのエイリアスについて、参照カウントの値がおかしな
状態になりました。
=item Attempt to free unreferenced scalar
=begin original
(W internal) Perl went to decrement the reference count of a scalar to
see if it would go to 0, and discovered that it had already gone to 0
earlier, and should have been freed, and in fact, probably was freed.
This could indicate that SvREFCNT_dec() was called too many times, or
that SvREFCNT_inc() was called too few times, or that the SV was
mortalized when it shouldn't have been, or that memory has been
corrupted.
=end original
(W) Perl がスカラの参照カウントをデクリメントしようとして、0 になるかを
見たところ、既に 0 になっていることがわかりました;
これは、既に解放されているべきものであり、実際は、おそらく、
解放されたものでしょう。
これは、SvREFCNT_dec() が必要以上に呼ばれたか、SvREFCNT_inc() が必要な
ときに呼ばれなかったか、SV が消滅すべきで無いときに消滅してしまったか、
メモリ異常になったことが考えられます。
=item Attempt to join self
=begin original
(F) You tried to join a thread from within itself, which is an
impossible task. You may be joining the wrong thread, or you may need
to move the join() to some other thread.
=end original
(F) スレッドをそれ自身の中から join しようとしました; これは不可能な
動作です。
間違ったスレッドに join しようとしているか、あるいは join() を他の
スレッドに移動させる必要があります。
=item Attempt to pack pointer to temporary value
=begin original
(W pack) You tried to pass a temporary value (like the result of a
function, or a computed expression) to the "p" pack() template. This
means the result contains a pointer to a location that could become
invalid anytime, even before the end of the current statement. Use
literals or global values as arguments to the "p" pack() template to
avoid this warning.
=end original
(W pack) (関数の結果や計算された式といった)一時的な値を pack() の
"p" テンプレートに渡そうとしました。
これは、たとえ現在の文の終了前でも、不正な値となり得ます。
この警告を避けるためには、pack テンプレート "p" の引数として、リテラルか
グローバルな値を使ってください。
=item Attempt to reload %s aborted.
=begin original
(F) You tried to load a file with C<use> or C<require> that failed to
compile once already. Perl will not try to compile this file again
unless you delete its entry from %INC. See L<perlfunc/require> and
L<perlvar/%INC>.
=end original
(F) 既に一度コンパイルに失敗しているファイルを C<use> や C<require> で
読み込もうとしました。
Perl は %INC からこのファイルのエントリを削除するまで再びファイルを
コンパイルしようとはしません。
L<perlfunc/require> と L<perlvar/%INC> を参照してください。
=item Attempt to set length of freed array
=begin original
(W) You tried to set the length of an array which has been freed. You
can do this by storing a reference to the scalar representing the last index
of an array and later assigning through that reference. For example
=end original
(W) 既に解放された配列の長さを設定しようとしました。
配列の最後のインデックスを表現するスカラをリファレンスに保存して、
後でこのリファレンスを通して代入することでこれを行えます。
例えば:
$r = do {my @a; \$#a};
$$r = 503
=item Attempt to use reference as lvalue in substr
=begin original
(W substr) You supplied a reference as the first argument to substr()
used as an lvalue, which is pretty strange. Perhaps you forgot to
dereference it first. See L<perlfunc/substr>.
=end original
(W substr) 左辺値として使われる substr() の 1 番目の引数としてリファレンスを
渡しました; これはやや奇妙なことです。
おそらくはまずデリファレンスするのを忘れたのでしょう。
L<perlfunc/substr> を参照してください。
=item Attribute "locked" is deprecated
=begin original
(D deprecated) You have used the attributes pragam to modify the "locked"
attribute on a code reference. The :locked attribute is obsolete, has had no
effect since 5005 threads were removed, and will be removed in the next major
release of Perl 5.
=end original
(D deprecated) コードリファレンスの "locked" 属性を修正するために
attributes プラグマを使いました。
:locked 属性は古いもので、5005 スレッドが削除されてから何の効果もなく、
次の Perl 5 のメジャーリリースで削除されます。
=item Attribute "unique" is deprecated
=begin original
(D deprecated) You have used the attributes pragam to modify the "unique"
attribute on an array, hash or scalar reference. The :unique attribute has
had no effect since Perl 5.8.8, and will be removed in the next major
release of Perl 5.
=end original
(D deprecated) 配列、ハッシュ、スカラリファレンスの "unique" 属性を
修正するために attributes プラグマを使いました。
:unique 属性は Perl 5.8.8 から何の効果もなく、次の Perl 5 のメジャー
リリースで削除されます。
=item Bad arg length for %s, is %d, should be %d
=begin original
(F) You passed a buffer of the wrong size to one of msgctl(), semctl()
or shmctl(). In C parlance, the correct sizes are, respectively,
S<sizeof(struct msqid_ds *)>, S<sizeof(struct semid_ds *)>, and
S<sizeof(struct shmid_ds *)>.
=end original
(F) msgctl()、semctl()、shmctl() のいずれかに、間違ったサイズのバッファを
渡してしまいました。
C の言い方で書くと、正しいサイズはそれぞれ、sizeof(struct msqid_ds *)、
sizeof(struct semid_ds *)、sizeof(struct shmid_ds *) です。
=item Bad evalled substitution pattern
=begin original
(F) You've used the C</e> switch to evaluate the replacement for a
substitution, but perl found a syntax error in the code to evaluate,
most likely an unexpected right brace '}'.
=end original
(F)置換のための置き換え文字列を評価するために C</e> オプションを指定して
いますが、評価するコードに文法エラーがありました;
最もありそうなことは、予期しない位置に右中かっこ '}' があったことです。
=item Bad filehandle: %s
=begin original
(F) A symbol was passed to something wanting a filehandle, but the
symbol has no filehandle associated with it. Perhaps you didn't do an
open(), or did it in another package.
=end original
(F) ファイルハンドルが必要なものに、シンボルを渡しましたが、そのシンボルは、
それに伴うファイルハンドルがありません。
おそらく、open() を忘れたか、別のパッケージで open() したかでしょう。
=item Bad free() ignored
=begin original
(S malloc) An internal routine called free() on something that had never
been malloc()ed in the first place. Mandatory, but can be disabled by
setting environment variable C<PERL_BADFREE> to 0.
=end original
(S malloc) まず、malloc() されていないものに対して、内部ルーティンが
free() を呼びました。
強制ですが、環境変数 C<PERL_BADFREE> を 0 にすることで無効化できます。
=begin original
This message can be seen quite often with DB_File on systems with "hard"
dynamic linking, like C<AIX> and C<OS/2>. It is a bug of C<Berkeley DB>
which is left unnoticed if C<DB> uses I<forgiving> system malloc().
=end original
このメッセージ は、C<AIX> や C<OS/2> のような、「ハード」動的リンクを
行うシステムで DB_File を使うとしばしば表示されます。
これは C<DB> がシステムの malloc() を許していることに気が付かない
C<Berkeley DB> のバグです。
=item Bad hash
=begin original
(P) One of the internal hash routines was passed a null HV pointer.
=end original
(P) 内部ハッシュルーティンで、ヌル HV ポインタを渡されたものがありました。
=item Badly placed ()'s
=begin original
(A) You've accidentally run your script through B<csh> instead
of Perl. Check the #! line, or manually feed your script into
Perl yourself.
=end original
(A) スクリプトを perl ではなく B<csh> で実行しようとしました。
#! 行をチェックするか、スクリプトを直接 Perl で起動してください。
=item Bad name after %s::
=begin original
(F) You started to name a symbol by using a package prefix, and then
didn't finish the symbol. In particular, you can't interpolate outside
of quotes, so
=end original
(F) パッケージプレフィクスでシンボル名を書き始めましたが、そのシンボルが
終了しませんでした。
特に、クォートの外で、変数展開はできませんから、
$var = 'myvar';
$sym = mypack::$var;
=begin original
is not the same as
=end original
は、以下と同じではありません。
$var = 'myvar';
$sym = "mypack::$var";
=item Bad plugin affecting keyword '%s'
=begin original
(F) An extension using the keyword plugin mechanism violated the
plugin API.
=end original
(F) キーワードプラグイン機構を使っているエクステンションがプラグイン API に
違反しました。
=item Bad realloc() ignored
=begin original
(S malloc) An internal routine called realloc() on something that had
never been malloc()ed in the first place. Mandatory, but can be disabled
by setting environment variable C<PERL_BADFREE> to 1.
=end original
(S malloc) 内部ルーチンが、最初に malloc() されていない何かに対して
realloc() を呼び出しました。
必須ですが、環境変数 C<PERL_BADFREE> に 1 をセットすることで無効化できます。
=item Bad symbol for array
=begin original
(P) An internal request asked to add an array entry to something that
wasn't a symbol table entry.
=end original
(P) シンボルテーブルエントリではないものに、配列エントリを登録するような
内部要求があがりました。
=item Bad symbol for dirhandle
=begin original
(P) An internal request asked to add a dirhandle entry to something
that wasn't a symbol table entry.
=end original
(P) シンボルテーブルエントリではないものに、ディレクトリハンドルエントリを
登録するような内部要求があがりました。
=item Bad symbol for filehandle
=begin original
(P) An internal request asked to add a filehandle entry to something
that wasn't a symbol table entry.
=end original
(P) シンボルテーブルエントリではないものに、ファイルハンドルエントリを
登録するような内部要求があがりました。
=item Bad symbol for hash
=begin original
(P) An internal request asked to add a hash entry to something that
wasn't a symbol table entry.
=end original
(P) シンボルテーブルエントリではないものに、ハッシュエントリを
登録するような内部要求があがった。
=item Bareword found in conditional
=begin original
(W bareword) The compiler found a bareword where it expected a
conditional, which often indicates that an || or && was parsed as part
of the last argument of the previous construct, for example:
=end original
(W bareword) コンパイラが、条件が想定される位置に裸の単語を発見しました;
これはしばしば、|| や && が直前の構造の最後の引数の一部として
パースされたことを意味します; 例えば:
open FOO || die;
=begin original
It may also indicate a misspelled constant that has been interpreted as
a bareword:
=end original
これはまた、裸の単語として解釈されるような定数をタイプミスしたことを
示している場合もあります:
use constant TYPO => 1;
if (TYOP) { print "foo" }
=begin original
The C<strict> pragma is useful in avoiding such errors.
=end original
C<strict> プラグマはこのようなエラーを防ぐのに便利です。
=item Bareword "%s" not allowed while "strict subs" in use
=begin original
(F) With "strict subs" in use, a bareword is only allowed as a
subroutine identifier, in curly brackets or to the left of the "=>"
symbol. Perhaps you need to predeclare a subroutine?