This file is indexed.

/usr/share/perl/5.22.1/pod/perlfaq.pod is in perl-doc 5.22.1-9ubuntu0.6.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
=head1 NAME

perlfaq - frequently asked questions about Perl

=head1 VERSION

version 5.021009

=head1 DESCRIPTION

The perlfaq comprises several documents that answer the most commonly
asked questions about Perl and Perl programming. It's divided by topic
into nine major sections outlined in this document.

=head2 Where to find the perlfaq

The perlfaq is an evolving document.  Read the latest version at
L<http://learn.perl.org/faq/>.  It is also included in the standard Perl
distribution.

=head2 How to use the perlfaq

The C<perldoc> command line tool is part of the standard Perl distribution. To
read the perlfaq:

    $ perldoc perlfaq

To search the perlfaq question headings:

    $ perldoc -q open

=head2 How to contribute to the perlfaq

Review L<https://github.com/perl-doc-cats/perlfaq/wiki>.  If you don't find
your suggestion create an issue or pull request against
L<https://github.com/perl-doc-cats/perlfaq>.

Once approved, changes are merged into L<https://github.com/tpf/perlfaq>, the
repository which drives L<http://learn.perl.org/faq/>, and they are
distributed with the next Perl 5 release.

=head2 What if my question isn't answered in the FAQ?

Try the resources in L<perlfaq2>.

=head1 TABLE OF CONTENTS

=over 4

=item perlfaq1 - General Questions About Perl

=item perlfaq2 - Obtaining and Learning about Perl

=item perlfaq3 - Programming Tools

=item perlfaq4 - Data Manipulation

=item perlfaq5 - Files and Formats

=item perlfaq6 - Regular Expressions

=item perlfaq7 - General Perl Language Issues

=item perlfaq8 - System Interaction

=item perlfaq9 - Web, Email and Networking

=back

=head1 THE QUESTIONS

=head2 L<perlfaq1>: General Questions About Perl

This section of the FAQ answers very general, high-level questions about Perl.

=over 4

=item *

What is Perl?

=item *

Who supports Perl? Who develops it? Why is it free?

=item *

Which version of Perl should I use?

=item *

What are Perl 4, Perl 5, or Perl 6?

=item *

What is Perl 6?

=item *

How stable is Perl?

=item *

How often are new versions of Perl released?

=item *

Is Perl difficult to learn?

=item *

How does Perl compare with other languages like Java, Python, REXX, Scheme, or Tcl?

=item *

Can I do [task] in Perl?

=item *

When shouldn't I program in Perl?

=item *

What's the difference between "perl" and "Perl"?

=item *

What is a JAPH?

=item *

How can I convince others to use Perl?

=back


=head2 L<perlfaq2>: Obtaining and Learning about Perl

This section of the FAQ answers questions about where to find source and documentation for Perl, support, and related matters.

=over 4

=item *

What machines support Perl? Where do I get it?

=item *

How can I get a binary version of Perl?

=item *

I don't have a C compiler. How can I build my own Perl interpreter?

=item *

I copied the Perl binary from one machine to another, but scripts don't work.

=item *

I grabbed the sources and tried to compile but gdbm/dynamic loading/malloc/linking/... failed. How do I make it work?

=item *

What modules and extensions are available for Perl? What is CPAN?

=item *

Where can I get information on Perl?

=item *

What is perl.com? Perl Mongers? pm.org? perl.org? cpan.org?

=item *

Where can I post questions?

=item *

Perl Books

=item *

Which magazines have Perl content?

=item *

Which Perl blogs should I read?

=item *

What mailing lists are there for Perl?

=item *

Where can I buy a commercial version of Perl?

=item *

Where do I send bug reports?

=back


=head2 L<perlfaq3>: Programming Tools

This section of the FAQ answers questions related to programmer tools and programming support.

=over 4

=item *

How do I do (anything)?

=item *

How can I use Perl interactively?

=item *

How do I find which modules are installed on my system?

=item *

How do I debug my Perl programs?

=item *

How do I profile my Perl programs?

=item *

How do I cross-reference my Perl programs?

=item *

Is there a pretty-printer (formatter) for Perl?

=item *

Is there an IDE or Windows Perl Editor?

=item *

Where can I get Perl macros for vi?

=item *

Where can I get perl-mode or cperl-mode for emacs?

=item *

How can I use curses with Perl?

=item *

How can I write a GUI (X, Tk, Gtk, etc.) in Perl?

=item *

How can I make my Perl program run faster?

=item *

How can I make my Perl program take less memory?

=item *

Is it safe to return a reference to local or lexical data?

=item *

How can I free an array or hash so my program shrinks?

=item *

How can I make my CGI script more efficient?

=item *

How can I hide the source for my Perl program?

=item *

How can I compile my Perl program into byte code or C?

=item *

How can I get C<#!perl> to work on [MS-DOS,NT,...]?

=item *

Can I write useful Perl programs on the command line?

=item *

Why don't Perl one-liners work on my DOS/Mac/VMS system?

=item *

Where can I learn about CGI or Web programming in Perl?

=item *

Where can I learn about object-oriented Perl programming?

=item *

Where can I learn about linking C with Perl?

=item *

I've read perlembed, perlguts, etc., but I can't embed perl in my C program; what am I doing wrong?

=item *

When I tried to run my script, I got this message. What does it mean?

=item *

What's MakeMaker?

=back


=head2 L<perlfaq4>: Data Manipulation

This section of the FAQ answers questions related to manipulating numbers, dates, strings, arrays, hashes, and miscellaneous data issues.

=over 4

=item *

Why am I getting long decimals (eg, 19.9499999999999) instead of the numbers I should be getting (eg, 19.95)?

=item *

Why is int() broken?

=item *

Why isn't my octal data interpreted correctly?

=item *

Does Perl have a round() function? What about ceil() and floor()? Trig functions?

=item *

How do I convert between numeric representations/bases/radixes?

=item *

Why doesn't & work the way I want it to?

=item *

How do I multiply matrices?

=item *

How do I perform an operation on a series of integers?

=item *

How can I output Roman numerals?

=item *

Why aren't my random numbers random?

=item *

How do I get a random number between X and Y?

=item *

How do I find the day or week of the year?

=item *

How do I find the current century or millennium?

=item *

How can I compare two dates and find the difference?

=item *

How can I take a string and turn it into epoch seconds?

=item *

How can I find the Julian Day?

=item *

How do I find yesterday's date?

=item *

Does Perl have a Year 2000 or 2038 problem? Is Perl Y2K compliant?

=item *

How do I validate input?

=item *

How do I unescape a string?

=item *

How do I remove consecutive pairs of characters?

=item *

How do I expand function calls in a string?

=item *

How do I find matching/nesting anything?

=item *

How do I reverse a string?

=item *

How do I expand tabs in a string?

=item *

How do I reformat a paragraph?

=item *

How can I access or change N characters of a string?

=item *

How do I change the Nth occurrence of something?

=item *

How can I count the number of occurrences of a substring within a string?

=item *

How do I capitalize all the words on one line?

=item *

How can I split a [character]-delimited string except when inside [character]?

=item *

How do I strip blank space from the beginning/end of a string?

=item *

How do I pad a string with blanks or pad a number with zeroes?

=item *

How do I extract selected columns from a string?

=item *

How do I find the soundex value of a string?

=item *

How can I expand variables in text strings?

=item *

What's wrong with always quoting "$vars"?

=item *

Why don't my E<lt>E<lt>HERE documents work?

=item *

What is the difference between a list and an array?

=item *

What is the difference between $array[1] and @array[1]?

=item *

How can I remove duplicate elements from a list or array?

=item *

How can I tell whether a certain element is contained in a list or array?

=item *

How do I compute the difference of two arrays? How do I compute the intersection of two arrays?

=item *

How do I test whether two arrays or hashes are equal?

=item *

How do I find the first array element for which a condition is true?

=item *

How do I handle linked lists?

=item *

How do I handle circular lists?

=item *

How do I shuffle an array randomly?

=item *

How do I process/modify each element of an array?

=item *

How do I select a random element from an array?

=item *

How do I permute N elements of a list?

=item *

How do I sort an array by (anything)?

=item *

How do I manipulate arrays of bits?

=item *

Why does defined() return true on empty arrays and hashes?

=item *

How do I process an entire hash?

=item *

How do I merge two hashes?

=item *

What happens if I add or remove keys from a hash while iterating over it?

=item *

How do I look up a hash element by value?

=item *

How can I know how many entries are in a hash?

=item *

How do I sort a hash (optionally by value instead of key)?

=item *

How can I always keep my hash sorted?

=item *

What's the difference between "delete" and "undef" with hashes?

=item *

Why don't my tied hashes make the defined/exists distinction?

=item *

How do I reset an each() operation part-way through?

=item *

How can I get the unique keys from two hashes?

=item *

How can I store a multidimensional array in a DBM file?

=item *

How can I make my hash remember the order I put elements into it?

=item *

Why does passing a subroutine an undefined element in a hash create it?

=item *

How can I make the Perl equivalent of a C structure/C++ class/hash or array of hashes or arrays?

=item *

How can I use a reference as a hash key?

=item *

How can I check if a key exists in a multilevel hash?

=item *

How can I prevent addition of unwanted keys into a hash?

=item *

How do I handle binary data correctly?

=item *

How do I determine whether a scalar is a number/whole/integer/float?

=item *

How do I keep persistent data across program calls?

=item *

How do I print out or copy a recursive data structure?

=item *

How do I define methods for every class/object?

=item *

How do I verify a credit card checksum?

=item *

How do I pack arrays of doubles or floats for XS code?

=back


=head2 L<perlfaq5>: Files and Formats

This section deals with I/O and the "f" issues: filehandles, flushing, formats, and footers.

=over 4

=item *

How do I flush/unbuffer an output filehandle? Why must I do this?

=item *

How do I change, delete, or insert a line in a file, or append to the beginning of a file?

=item *

How do I count the number of lines in a file?

=item *

How do I delete the last N lines from a file?

=item *

How can I use Perl's C<-i> option from within a program?

=item *

How can I copy a file?

=item *

How do I make a temporary file name?

=item *

How can I manipulate fixed-record-length files?

=item *

How can I make a filehandle local to a subroutine? How do I pass filehandles between subroutines? How do I make an array of filehandles?

=item *

How can I use a filehandle indirectly?

=item *

How can I set up a footer format to be used with write()?

=item *

How can I write() into a string?

=item *

How can I open a filehandle to a string?

=item *

How can I output my numbers with commas added?

=item *

How can I translate tildes (~) in a filename?

=item *

How come when I open a file read-write it wipes it out?

=item *

Why do I sometimes get an "Argument list too long" when I use E<lt>*E<gt>?

=item *

How can I open a file with a leading "E<gt>" or trailing blanks?

=item *

How can I reliably rename a file?

=item *

How can I lock a file?

=item *

Why can't I just open(FH, "E<gt>file.lock")?

=item *

I still don't get locking. I just want to increment the number in the file. How can I do this?

=item *

All I want to do is append a small amount of text to the end of a file. Do I still have to use locking?

=item *

How do I randomly update a binary file?

=item *

How do I get a file's timestamp in perl?

=item *

How do I set a file's timestamp in perl?

=item *

How do I print to more than one file at once?

=item *

How can I read in an entire file all at once?

=item *

How can I read in a file by paragraphs?

=item *

How can I read a single character from a file? From the keyboard?

=item *

How can I tell whether there's a character waiting on a filehandle?

=item *

How do I do a C<tail -f> in perl?

=item *

How do I dup() a filehandle in Perl?

=item *

How do I close a file descriptor by number?

=item *

Why can't I use "C:\temp\foo" in DOS paths? Why doesn't `C:\temp\foo.exe` work?

=item *

Why doesn't glob("*.*") get all the files?

=item *

Why does Perl let me delete read-only files? Why does C<-i> clobber protected files? Isn't this a bug in Perl?

=item *

How do I select a random line from a file?

=item *

Why do I get weird spaces when I print an array of lines?

=item *

How do I traverse a directory tree?

=item *

How do I delete a directory tree?

=item *

How do I copy an entire directory?

=back


=head2 L<perlfaq6>: Regular Expressions

This section is surprisingly small because the rest of the FAQ is littered with answers involving regular expressions. For example, decoding a URL and checking whether something is a number can be handled with regular expressions, but those answers are found elsewhere in this document (in perlfaq9 : "How do I decode or create those %-encodings on the web" and perlfaq4 : "How do I determine whether a scalar is a number/whole/integer/float", to be precise).

=over 4

=item *

How can I hope to use regular expressions without creating illegible and unmaintainable code?

=item *

I'm having trouble matching over more than one line. What's wrong?

=item *

How can I pull out lines between two patterns that are themselves on different lines?

=item *

How do I match XML, HTML, or other nasty, ugly things with a regex?

=item *

I put a regular expression into $/ but it didn't work. What's wrong?

=item *

How do I substitute case-insensitively on the LHS while preserving case on the RHS?

=item *

How can I make C<\w> match national character sets?

=item *

How can I match a locale-smart version of C</[a-zA-Z]/> ?

=item *

How can I quote a variable to use in a regex?

=item *

What is C</o> really for?

=item *

How do I use a regular expression to strip C-style comments from a file?

=item *

Can I use Perl regular expressions to match balanced text?

=item *

What does it mean that regexes are greedy? How can I get around it?

=item *

How do I process each word on each line?

=item *

How can I print out a word-frequency or line-frequency summary?

=item *

How can I do approximate matching?

=item *

How do I efficiently match many regular expressions at once?

=item *

Why don't word-boundary searches with C<\b> work for me?

=item *

Why does using $&, $`, or $' slow my program down?

=item *

What good is C<\G> in a regular expression?

=item *

Are Perl regexes DFAs or NFAs? Are they POSIX compliant?

=item *

What's wrong with using grep in a void context?

=item *

How can I match strings with multibyte characters?

=item *

How do I match a regular expression that's in a variable?

=back


=head2 L<perlfaq7>: General Perl Language Issues

This section deals with general Perl language issues that don't clearly fit into any of the other sections.

=over 4

=item *

Can I get a BNF/yacc/RE for the Perl language?

=item *

What are all these $@%&* punctuation signs, and how do I know when to use them?

=item *

Do I always/never have to quote my strings or use semicolons and commas?

=item *

How do I skip some return values?

=item *

How do I temporarily block warnings?

=item *

What's an extension?

=item *

Why do Perl operators have different precedence than C operators?

=item *

How do I declare/create a structure?

=item *

How do I create a module?

=item *

How do I adopt or take over a module already on CPAN?

=item *

How do I create a class?

=item *

How can I tell if a variable is tainted?

=item *

What's a closure?

=item *

What is variable suicide and how can I prevent it?

=item *

How can I pass/return a {Function, FileHandle, Array, Hash, Method, Regex}?

=item *

How do I create a static variable?

=item *

What's the difference between dynamic and lexical (static) scoping? Between local() and my()?

=item *

How can I access a dynamic variable while a similarly named lexical is in scope?

=item *

What's the difference between deep and shallow binding?

=item *

Why doesn't "my($foo) = E<lt>$fhE<gt>;" work right?

=item *

How do I redefine a builtin function, operator, or method?

=item *

What's the difference between calling a function as &foo and foo()?

=item *

How do I create a switch or case statement?

=item *

How can I catch accesses to undefined variables, functions, or methods?

=item *

Why can't a method included in this same file be found?

=item *

How can I find out my current or calling package?

=item *

How can I comment out a large block of Perl code?

=item *

How do I clear a package?

=item *

How can I use a variable as a variable name?

=item *

What does "bad interpreter" mean?

=item *

Do I need to recompile XS modules when there is a change in the C library?

=back


=head2 L<perlfaq8>: System Interaction

This section of the Perl FAQ covers questions involving operating system interaction. Topics include interprocess communication (IPC), control over the user-interface (keyboard, screen and pointing devices), and most anything else not related to data manipulation.

=over 4

=item *

How do I find out which operating system I'm running under?

=item *

How come exec() doesn't return?

=item *

How do I do fancy stuff with the keyboard/screen/mouse?

=item *

How do I print something out in color?

=item *

How do I read just one key without waiting for a return key?

=item *

How do I check whether input is ready on the keyboard?

=item *

How do I clear the screen?

=item *

How do I get the screen size?

=item *

How do I ask the user for a password?

=item *

How do I read and write the serial port?

=item *

How do I decode encrypted password files?

=item *

How do I start a process in the background?

=item *

How do I trap control characters/signals?

=item *

How do I modify the shadow password file on a Unix system?

=item *

How do I set the time and date?

=item *

How can I sleep() or alarm() for under a second?

=item *

How can I measure time under a second?

=item *

How can I do an atexit() or setjmp()/longjmp()? (Exception handling)

=item *

Why doesn't my sockets program work under System V (Solaris)? What does the error message "Protocol not supported" mean?

=item *

How can I call my system's unique C functions from Perl?

=item *

Where do I get the include files to do ioctl() or syscall()?

=item *

Why do setuid perl scripts complain about kernel problems?

=item *

How can I open a pipe both to and from a command?

=item *

Why can't I get the output of a command with system()?

=item *

How can I capture STDERR from an external command?

=item *

Why doesn't open() return an error when a pipe open fails?

=item *

What's wrong with using backticks in a void context?

=item *

How can I call backticks without shell processing?

=item *

Why can't my script read from STDIN after I gave it EOF (^D on Unix, ^Z on MS-DOS)?

=item *

How can I convert my shell script to perl?

=item *

Can I use perl to run a telnet or ftp session?

=item *

How can I write expect in Perl?

=item *

Is there a way to hide perl's command line from programs such as "ps"?

=item *

I {changed directory, modified my environment} in a perl script. How come the change disappeared when I exited the script? How do I get my changes to be visible?

=item *

How do I close a process's filehandle without waiting for it to complete?

=item *

How do I fork a daemon process?

=item *

How do I find out if I'm running interactively or not?

=item *

How do I timeout a slow event?

=item *

How do I set CPU limits?

=item *

How do I avoid zombies on a Unix system?

=item *

How do I use an SQL database?

=item *

How do I make a system() exit on control-C?

=item *

How do I open a file without blocking?

=item *

How do I tell the difference between errors from the shell and perl?

=item *

How do I install a module from CPAN?

=item *

What's the difference between require and use?

=item *

How do I keep my own module/library directory?

=item *

How do I add the directory my program lives in to the module/library search path?

=item *

How do I add a directory to my include path (@INC) at runtime?

=item *

Where are modules installed?

=item *

What is socket.ph and where do I get it?

=back


=head2 L<perlfaq9>: Web, Email and Networking

This section deals with questions related to running web sites, sending and receiving email as well as general networking.

=over 4

=item *

Should I use a web framework?

=item *

Which web framework should I use?

=item *

What is Plack and PSGI?

=item *

How do I remove HTML from a string?

=item *

How do I extract URLs?

=item *

How do I fetch an HTML file?

=item *

How do I automate an HTML form submission?

=item *

How do I decode or create those %-encodings on the web?

=item *

How do I redirect to another page?

=item *

How do I put a password on my web pages?

=item *

How do I make sure users can't enter values into a form that causes my CGI script to do bad things?

=item *

How do I parse a mail header?

=item *

How do I check a valid mail address?

=item *

How do I decode a MIME/BASE64 string?

=item *

How do I find the user's mail address?

=item *

How do I send email?

=item *

How do I use MIME to make an attachment to a mail message?

=item *

How do I read email?

=item *

How do I find out my hostname, domainname, or IP address?

=item *

How do I fetch/put an (S)FTP file?

=item *

How can I do RPC in Perl?

=back



=head1 CREDITS

Tom Christiansen wrote the original perlfaq then expanded it with the
help of Nat Torkington. brian d foy substantially edited and expanded
the perlfaq. perlfaq-workers and others have also supplied feedback,
patches and corrections over the years.

=head1 AUTHOR AND COPYRIGHT

Tom Christiansen wrote the original version of this document.
brian d foy C<< <bdfoy@cpan.org> >> wrote this version. See the
individual perlfaq documents for additional copyright information.

This document is available under the same terms as Perl itself. Code
examples in all the perlfaq documents are in the public domain. Use
them as you see fit (and at your own risk with no warranty from anyone).