"How do I fetch a news article or the active newsgroups?" in perlfaq9

How do I fetch a news article or the active newsgroups? ... ::NNTPClient->new->list("newsgroups")'

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

} else { substr($new, $i, 1) = uc(substr($new, $i, 1)); ... } elsif ($state == 2) { substr($new, $oldlen) = uc(substr($new, $oldlen

"How can I reliably rename a file?" in perlfaq5

) or system("mv", $old, $new); It may be more portable to use the File::Copy module instead. ... You just copy to the new file to the new name (checking return values), then delete the old one.

"How do I merge two hashes?" in perlfaq4

If you want to preserve the original hashes, copy one hash (%hash1) to a new hash (%new_hash), then add ... the keys from the other hash (%hash2 to the new hash.

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

He suggests (assuming your string is contained in $text): @new = (); push(@new, $+ ... module (part of the standard Perl distribution) lets you say: use Text::ParseWords; @new

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

use MIME::Lite; ### Create a new multipart message: $msg = MIME::Lite->new( ... mixed' ); ### Add parts (each "attach" has same arguments as "new

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

local($x) saves away the old value of the global variable $x and assigns a new value for the duration ... my($x) creates a new variable that is only visible in the current subroutine.

"How stable is Perl?" in perlfaq1

Production releases, which incorporate bug fixes and new functionality, are widely tested before release ... invalidate a program written for an earlier version of perl (barring accidental bug fixes and the rare new

"How can I copy a file?" in perlfaq5

use File::Copy; copy( $original, $new_copy ) or die "Copy failed: $!" ... You also have to remember to copy the permissions, owner, and group to the new file.

"How do I convert between numeric representations/bases/radixes?" in perlfaq4

", -8))); Using the CPAN module Bit::Vector: use Bit::Vector; $vec = Bit::Vector->new_Hex ... dec = oct("33653337357"); Using Bit::Vector: use Bit::Vector; $vec = Bit::Vector->new

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

Think of it this way: double-quote expansion is used to produce new strings. ... If you get used to writing odd things like these: print "$var"; # BAD $new

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

You have to put these directives at the beginning of the line and somewhere where Perl expects a new ... the comment with =cut, ending the Pod section: =pod my $object = NotGonnaHappen->new

"What was Ponie?" in perlfaq1

(contributed by brian d foy) Ponie stands for "Perl On the New Internal Engine", started by Arthur Bergman ... Instead of using the current Perl internals, Ponie aimed to create a new one that would provide a translation

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

; open my $out, '>', "$" or die "Can't write new file: $!" ... open my $out, '>', "$" or die "Can't write new file: $!"

"How do I shuffle an array randomly?" in perlfaq4

splice, randomly picking another element to swap the current element with srand; @new ... = (); @old = 1 .. 10; # just a demo while (@old) { push(@new, splice

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

handshaking, then the standard dual-process approach will suffice: use IO::Socket; # new ... in 5.004 $handle = IO::Socket::INET->new('') or die "can't connect

"How do I make a temporary file name?" in perlfaq5

If you don't have a modern enough Perl installed, use the new_tmpfile class method from the IO::File ... () or die "Unable to make new temporary file: $!"

"What is variable suicide and how can I prevent it?" in perlfaq7

foobarbarbar Finally foo The $f that has "bar" added to it three times should be a new ... $f my $f should create a new lexical variable each time through the loop.

"How can I use a reference as a hash key?" in perlfaq4

This will mean a new variable might accidentally be associated with the value for an old. ... handle renaming the keys if you use multiple threads (which causes all variables to be reallocated at new

"How do I declare/create a structure?" in perlfaq7

Here's an example: $person = {}; # new anonymous hash $person->{AGE

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

To change the file, make a new shadow password file (the format varies from system to system--see passwd

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

:-) If you want to override a predefined function, such as open(), then you'll have to import the new

"How do I edit my .htpasswd and .htgroup files with Perl?" in perlfaq9

Here's an example: use HTTPD::UserAdmin (); HTTPD::UserAdmin ->new(DB => "

"What are the Perl newsgroups on Usenet? Where do I post questions?" in perlfaq2

While that group may still be found on some news servers, it is unwise to use it, because postings there ... will not appear on news servers which honour the official list of group names.

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

You are probably using "main::foo" in new Perl code anyway, so this shouldn't be an issue.

"Who supports Perl? Who develops it? Why is it free?" in perlfaq1

See perlhist (new as of 5.005) for Perl's milestone releases. ... and or the news

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

lines in the file then start at the beginning and print the number of lines (minus the last N) to a new ... my $filename = 'test.txt'; my $Lines_to_truncate = 2; my $bw = File::ReadBackwards->new

"How can I use Perl's -i option from within a program?" in perlfaq5

all the .c files in the current directory, leaving a backup of the original data from each file in a new

"How do I remove consecutive pairs of characters?" in perlfaq4

my $str = 'Haarlem'; # in the Netherlands $str =~ tr///cs; # Now Harlem, like in New

"How do I handle circular lists?" in perlfaq4

arrays: use Array::Iterator::Circular; my $color_iterator = Array::Iterator::Circular->new

"How do I automate an HTML form submission?" in perlfaq9

use HTTP::Request::Common qw(POST); use LWP::UserAgent; $ua = LWP::UserAgent->new();

"Can I use Perl regular expressions to match balanced text?" in perlfaq6

First, adding the new possessive + to any quantifier finds the longest match and does not backtrack. ... Second, the new (?PARNO) refers to the sub-pattern in the particular capture group given by PARNO.

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

; To open file for writing, create new file if needed or else truncate old file: open my $fh ... ; To open file for writing, create new file, file must not exist: sysopen my $fh, $path, O_WRONLY

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

MakeMaker for more information (in brief, just use make perl instead of a plain make to rebuild perl with a new

"What is Perl Mongers?" in perlfaq2

There are also many other sub-domains for special topics like learning Perl, Perl news, jobs in Perl,

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

use File::Stream; my $stream = File::Stream->new( $filehandle,

"How do I decode a CGI form?" in perlfaq9

use CGI; my $cgi = CGI->new(); my $total = $cgi->param( 'price' ) + $cgi->param( 'shipping

"How do I clear the screen?" in perlfaq8

filehandle you want to affect, call the Cls method: Win32::Console; $OUT = Win32::Console->new

"How can I capture STDERR from an external command?" in perlfaq8

IPC::Open3; use Symbol qw(gensym); use IO::File; local *CATCHOUT = IO::File->new_tmpfile ... ; local *CATCHERR = IO::File->new_tmpfile; my $pid = open3(gensym, ">&CATCHOUT", ">&CATCHERR

"How can I convince others to use Perl?" in perlfaq1

If Perl is new (and thus scary) to them, find something that Perl can do to solve one of their problems

"How do I send mail?" in perlfaq9

able use the CPAN module Mail::Mailer: use Mail::Mailer; $mailer = Mail::Mailer->new

"How can I use a filehandle indirectly?" in perlfaq5

bless-able) $fh = *SOME_FH{IO}; # blessed IO::Handle from *SOME_FH typeglob Or, you can use the new ... use IO::Handle; # 5.004 or higher my $fh = IO::Handle->new(); Then use any

"How can I lock a file?" in perlfaq5

For more information on file locking, see also "File Locking" in perlopentut if you have it (new for

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

use ExtUtils::Installed; my $inst = ExtUtils::Installed->new(); my @modules = $inst

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

echo, $noecho, $fd_stdin); my $fd_stdin = fileno(STDIN); $term = POSIX::Termios->new

"Which version of Perl should I use?" in perlfaq1

If things aren't broken, upgrading perl may break them (or at least issue new warnings).

"How do I find yesterday's date?" in perlfaq4

() - ONE_DAY; # WRONG print "Yesterday was $yesterday\n"; The Time::Piece module exports a new

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

Left and right padding with any character, creating a new string: $padded = $pad_char x ( $pad_len

"How do I permute N elements of a list?" in perlfaq4

d'; my $p_iterator = Algorithm::Permute->new ( \@array ); while (my @perm = $p_iterator

"How do I profile my Perl programs?" in perlfaq3

reporting in one step with the -p switch to dprofpp: dprofpp -p The Devel::NYTProf (New

"What modules and extensions are available for Perl? What is CPAN? What does CPAN/src/... mean?" in perlfaq2

wide web support; server and daemon utilities; archiving and compression; image manipulation; mail and news

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

$echo, $noecho, $fd_stdin); $fd_stdin = fileno(STDIN); $term = POSIX::Termios->new

"How do I manipulate arrays of bits?" in perlfaq4

. $+[0] * 8; } Or use the CPAN module Bit::Vector: $vector = Bit::Vector->new

"Is there an IDE or Windows Perl Editor?" in perlfaq3

in trying it out, firstly because strictly speaking it is not a vi clone, it is the real vi, or the new