

| Name | Description | Category | Uses | |
|---|---|---|---|---|
| access.cgi | Simple username/password authentication using /etc/passwd file(unix) and cookies | WWW | CGI | Try it |
| addr_to_name.cgi | Get hostname from host's IP address | WWW | -- | Try it |
| add_line.pl | Add a line to a file | 1-liner | -- | |
| autoload.cgi | Using AUTOLOAD | OO | Autoload.pm | Try it |
| Autoload.pm | AUTOLOAD demo package. Used by autoload.cgi | OO | Carp | |
| bailout.cgi | Bail out of long computation prematurely using alarm func | GEN | Carp | Try it |
| bbc_top_story.cgi | Extract BBC top story title from their main page | WWW | HTML::TokeParser, LWP::Simple | Try it |
| bbc_top_story_url.cgi | Extract BBC top story url from main page | WWW | HTML::LinkExtor,use LWP::Simple | Try it |
| benchmark.cgi | How to benchmark your code | GEN | Benchmark | Try it |
| cgipassword.cgi | Getting password field from user in CGI form. | WWW | CGI | Try it |
| char_histogram.cgi | Count caracters in input string, print out histogram sorted by frequency | SNIP | Try it | |
| chat2.cgi | Simple Chat | WWW | CGI,Time::Local | Try it |
| check_apache.pl | Start apache if not running | sysadm | none | |
| check_email_syntax.cgi | Basic check of email address syntax | WWW | -- | Try it |
| check_mysql_tables.pl | Check all mysql tables, create reports | sysadm | none | |
| chown.pl | Set Ownership and Permissions for files matching pattern in a tree | ADMIN | -- | |
| closure.cgi | Simple closure | GEN | -- | Try it |
| config.cgi | Show perl configuration (same as -V switch) | GEN | Config | Try it |
| counter.cgi | Simple Text Counter. Shows date and number of visits. | WWW | -- | Try it |
| count_comments.cgi | Count full-line comments, empty lines and code lines | GEN | -- | Try it |
| count_words.cgi | Count words in a set of files, sort by frequency | GEN | -- | Try it |
| crypt.pl | Crypt::Simple test script | ENCR | (FreezeThaw, Compress::Zlib, Crypt::Blowfish, Digest::MD5, MIME::Base64) | |
| date.cgi | Get current date and print it in different formats | WWW | -- | Try it |
| dateManip.cgi | Using Date::Manip | WWW | Date::Manip | Try it |
| daysinmonth.cgi | Get number of days in given month | GEN | -- | Try it |
| DB.pm | PERLNOW DB interface functions using inside-out class | OO | DBI, Class::Std::Utils, PERLNOW::Config | |
| debug.pl | Run perl debugger | 1-liner | -- | |
| decodeURL.cgi | Encode/Decode hex to ascii in a URL string | WWW | -- | Try it |
| del_symlinked_file.pl | Delete both symbolic link and file it references | SNIPP | -- | |
| discussion.cgi | Simple discussion using MySQL | WWW | CGI, Discussion | Try it |
| Discussion.pm | Discussion.pm - simple discussion package | WWW | CGI,DBI | |
| dos_to_unix.pl | Dos-to-unix and unix-to-dos filters. | 1-liner | -- | |
| download.pl | Downloading file | WWW | Apache::Registry | |
| extract_email_addr.pl | Extract from bounce file and print alphabetically sorted email addresses along with counter for each addr | WWW | none | |
| fake_referer.cgi | Fake HTTP_REFERER | WWW | HTTP::Request::Common, LWP::UserAgent | Try it |
| fetch_files.pl | Fetch files listed in a file located on remote server unix/linux/wintel | WWW | LWP::Simple; | |
| fileparse.cgi | Parsing File Pathname with File::Basename | GEN | File::Basename | Try it |
| findfiles.cgi | Find files matching simple criteria | DIRMAN | File::Find, CGI | Try it |
| find_dups.cgi | Find duplicate records in db.table on multiple fields f1..fn | DB | DBI | Try it |
| find_exe.cgi | Find executable file in PATH | ADMIN | CGI | Try it |
| find_todays_files.cgi | Find files matching wild card and modified within last 24 hrs | DIRMAN | File::Find, CGI | Try it |
| fisher_yates_shuffle.cgi | Shuffle array in place using Fisher- Yates algorithm (perlfaq4) | GEN | -- | Try it |
| format.cgi | Using format function | GEN | -- | Try it |
| ftp.cgi | Anonymous ftp access | WWW | Net::FTP, CGI | Try it |
| generalmailer.pl | Yet Another Mailer | WWW | My::Config, Getopt::Long, CGI::LogCarp | |
| getcdntousrate.cgi | Get CDN/US exchange rate using yahoo quotes | WWW | Finance::Quote | Try it |
| getdtv.cgi | What's on tonight? LWP fetch from live TV guide. | WWW | LWP::Simple | Try it |
| gethostbyname.cgi | Get host info by giving it's name | WWW | -- | Try it |
| getitle.cgi | Extract page title using TokeParser | WWW | HTML::TokeParser, LWP::Simple | Try it |
| getopt.cgi | Parse ARGV using Getopt::Long module | GEN | Getopt::Long | Try it |
| getxml.cgi | Get news headlines from BBC rss feed | WWW | HTTP::Lite, XML::Simple | Try it |
| get_post.cgi | Fetch URL with GET or POST method using parameters | WWW | HTTP::Request, LWP::UserAgent, LWP::Simple | Try it |
| grep.cgi | Search files for words. Print out file names. | GEN | CGI | Try it |
| guestbook.cgi | Simple Guestbook | WWW | CGI | Try it |
| Hashcount.pm | Tied hash that counts accesses to hash elements. Used by tiehash.cgi | OO | Tie::Hash | |
| hashes.cgi | Working with hashes | GEN | -- | Try it |
| html_to_ascii.cgi | Convert HTML to ASCII with given margins | WWW | HTML::Parse HTML::FormatText; | Try it |
| inc.cgi | Check if module is present in your installation of Perl | GEN | CGI | Try it |
| insideout.cgi | Inside-Out object example | OO | Port, Data::Dumper | Try it |
| lastrev.cgi | Get last revision of file in directory | SNIPP | - | Try it |
| links.cgi | Show drop-down box with links/go to the selected link | WWW | CGI, CGI::Carp | Try it |
| lists.cgi | Working with lists (arrays) | GEN | -- | Try it |
| listscript_htm.cgi | Print script source in html | GEN | -- | Try it |
| listscript_txt.cgi | Script lister - prints text file given as a parameter | GEN | -- | Try it |
| listscript_XMP.cgi | Print script source in html using XMP tag | GEN | -- | Try it |
| listurls.cgi | Extract and list URLs from HTML file, sort alphabetically | WWW | HTML::LinkExtor,use LWP::Simple | Try it |
| list_new_urls.cgi | Extract and list URLs from HTML file sort by their modification date | WWW | LWP::UserAgent, HTTP::Request, URI::URL | Try it |
| lowspace.pl | See how much space each partition has and notify admin in case it runs lower than margin | sysadm | none | |
| mac_to_unix.pl | Mac-to-unix filter. | 1-liner | -- | |
| mailer.pl | Many ways of sending e-mail | WWW | Mail::Mailer, Net::SMTP, Mail::Sender, Mail::Sendmail | |
| md5password.cgi | Encrypted password & user record in DB | WWW | CGI, Digest::MD5, DBI | Try it |
| minmax.cgi | Get min/max from list of values | GEN | -- | Try it |
| mkdir.pl | Create a directory | GEN | -- | |
| modate.cgi | Getting file modification date (unix/wintel) | GEN | --- | Try it |
| mysql.cgi | Example of using mysql database - read/write into address book | DB | DBI,CGI | Try it |
| named_params.cgi | Passing named parameters | GEN | -- | Try it |
| nntp.cgi | Communicating with News Server | WWW | Net::NNTP | Try it |
| order.cgi | Fill in order for a Script/show current orders | WWW | CGI,POSIX | Try it |
| pack_unpack.cgi | Packing/Unpacking binary data | GEN | -- | Try it |
| padding.cgi | String/Number Padding | SNIPP | -- | Try it |
| parse_phone_number.cgi | Parse 7/10 digit phone number | GEN | CGI | Try it |
| perldep.pl | Print dependencies for given script/module | GEN | none | |
| perljobs.cgi | Get list of telecommuting jobs from jobs.perl.org. | WWW | HTML::TokeParser::Simple | Try it |
| perl_interp.pl | Run Perl as interpreter | 1-liner | -- | |
| perl_misc.cgi | Search messages in comp.lang.perl.misc group for keyword | WWW | CGI | Try it |
| perl_vi_emacs.pl | Execute Perl commands from vi / Emacs | GEN | -- | |
| piechart.cgi | Simple Pie chart | WWW | CGI, GD::Graph::pie | Try it |
| podcomment.cgi | Multi-line comments using pod directives | GEN | -- | Try it |
| Point.pm | OO Perl - simple Perl class (used by simple_class) | OO | -- | |
| Port.pm | Example of using inside-out objects (see insideout.cgi) | OO | Object::InsideOut, Carp | |
| posix_time.cgi | Current date/time - POSIX compliant | DATIME | POSIX, CGI | Try it |
| printenv.cgi | Simple test script to check Web Server status | WWW | -- | Try it |
| purge_mysql_binary_logs.pl | Purge MySQL binary logs | sysadm | None | |
| Rand10.pm | Package for tiescalar.cgi | OO | -- | |
| readinbox.cgi | Create simple address book from Netscape Inbox | WWW | -- | Try it |
| read_log.cgi | Simple Log file parser. Splits every record into 13 fields | WWW | -- | Try it |
| read_pop_mail.cgi | Read messages from your POP3 account | WWW | Mail::POP3Client | Try it |
| read_xml.pl | Read XML file using LibXML (libxml2 perl interface) | WWW | LibXML | |
| recursion.cgi | Simple recursion | GEN | -- | Try it |
| redirector.pl | process bounced messages, forward rest to admin | sysadm | CGI::LogCarp, MY::Config, MY::DB | |
| referent.cgi | Determine referent type | GEN | -- | Try it |
| refs.cgi | Basic operations on references | GEN | Data::Dumper | Try it |
| remove_html_tags.cgi | Remove HTML tags from file | WWW | HTML | Try it |
| reverse.cgi | Find ABCD * 4 = DCBA; Each letter is unique digit | GEN | Try it | |
| rssparser.cgi | Simple (and fast) rss reader | WWW | XML::RSS::Parser | Try it |
| run_remote_exe.cgi | Run executable on a remote server, print STDOUT | GEN | LWP | Try it |
| script_call.cgi | Call perl script from another perl script, pass parameters using GET method | GEN | -- | Try it |
| select_country.cgi | Select country from sorted list; return 2 letter code | WWW | CGI | Try it |
| select_state.cgi | Select state from sorted list; return 2 letter code | WWW | CGI | Try it |
| set_get_cookie.cgi | Sets/retrieves a cookie. (Cookies should be enabled in a browser for this to work) | WWW | CGI | Try it |
| set_schedule.pl | Run specified command on certain DOW in given month(s) | util | -- | |
| simple_class.cgi | Using user-defined simple Perl class (Point.pm) | OO | Point | Try it |
| sizes.cgi | Recursive cumulative sizes of a directory | GEN | File::Find | Try it |
| smart_comments.pl | Use smart comments in your code | GEN | Smart::Comments | |
| splitstring.cgi | How to split string into characters | SNIP | Try it | |
| ssh.pl | Executing commands through ssh | Admin | Net::SSH::Perl | |
| struct.cgi | Build struct-like classes on the fly | GEN | Class::Struct | Try it |
| switches.pl | Command-line switches | 1-liner | -- | |
| swsort.cgi | Using Schwartzian Transfrom to sort hash | GEN | Try it | |
| tcpclient.pl | Simple TCP client. Connect to server at given IP, port, read from socket, print output | WWW | Socket | |
| tcpserver.pl | Simple TCP server. Listen to port 4567, run uptime, return output to the client | WWW | Socket | |
| telnet.pl | Using telnet from a program | WWW | Net::Telnet | |
| text_wrap.cgi | Wrap text to given right margin, first and subsequent tabs | GEN | Text::Wrap or HTML::FormatText; | Try it |
| thcreate.cgi | Create new user Profile | DB | CGI,DBI | Try it |
| thread.cgi | View/Search User profile | DB | CGI,DBI | Try it |
| thupdate.cgi | Update User Profile | DB | CGI,DBI | Try it |
| ticker.cgi | Simple stock ticker (requires 5.005) | WWW | Finance::Quote | Try it |
| tiehash.cgi | Tied hash example. Hash that maintains it's access count | GEN | Tie::Hash, Hashcount | Try it |
| tiescalar.cgi | Tied Scalar example | GEN | Rand10 | Try it |
| tounix.pl | Recursive DOS=>unix convertor. (Converts text files only). | DIRMAN | File::Find | |
| unique_words.cgi | Split file into words. Print unique words in original order | 1LINER | -- | Try it |
| upload.cgi | How to upload files using multipart form. Will print files to standard output | WWW | CGI | Try it |
| utime.pl | Change file timestamp | sysadm | -- | |
| weather.cgi | Simple redirect based on entry selected from drop-down box. Opens new window. | WWW | CGI | Try it |
| win_registry.pl | Read windows registry entries for every user (win) | ADMIN | Win32::Registry | |
| write_topic.cgi | Form to create new topic (discussion.cgi) | WWW | CGI | Try it |