Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Seekers of Perl Wisdom

( #479=superdoc: print w/ replies, xml ) Need Help??

If you have a question on how to do something in Perl, or you need a Perl solution to an actual real-life problem, or you're unsure why something you've tried just isn't working... then this section is the place to ask. Post a new question!

However, you might consider asking in the chatterbox first (if you're a registered user). The response time tends to be quicker, and if it turns out that the problem/solutions are too much for the cb to handle, the kind monks will be sure to direct you here.

User Questions
subroutine ref while "strict refs"
5 direct replies — Read more / Contribute
by viffer
on Jul 28, 2014 at 04:37
    Hi all, I've seen a number of emails on this subject but unfortunately haven't managed to find a solution to the specific issue I'm having.

    Essentially I am loading data into a hash of hashes, one field of which contains a sub routine that I need to perform if all the keys match.

    That part is all working fine - except for the fact that unless I turn off strict I can't use it! :)

    Sample data I'm loading into the hash is:

    000.01|RECD_TYPE|01-03|CHAR(3)|RECORD TYPE|check_char 000.02|DATE_TIME| 05-21|CHAR(17)|TIME STAMP|check_time 000.03|DATE_ISSUE|23-30|CHAR(8)|DATE OF ISSUE|check_date 010.01|RECD_TYPE|01-03|CHAR(3)|RECORD TYPE|check_char 010.02|PROP_NUMB|05-11|PIC(9999999)|PROPERTY NUMBER|check_numeric

    I'm loading the data into my hash of hashes table via

    open( $record_layout, '<', $RECORD_LAYOUT ) or die "Open file $RECORD_LAYOUT failed $!"; #Load record formats into a hash. If record layout changes simply chan +ge layout while ($record = <$record_layout>) { chomp $record; my @fields = split(/\|/, $record); my @keys = split(/\./, $fields[0]); $keys[1] =~ s/\s*$//; $keys[1] = int($keys[1]); if (! $rec_layout_hash{$keys[0]}) { $rec_layout_hash{$keys[0]} = {}; } else { $rec_layout_hash{$keys[0]}->{$keys[1]} = {}; } $rec_layout_hash{$keys[0]}->{$keys[1]} = {'field_type' => $fields[1], 'chars_position' => $fields[2], 'field_length' => $fields[3], 'sub_routine' => $fields[5], }; } close $record_layout;
    Then reading the hashes to obtain and call the subroutine via

    my $input_file; my $line; open( $input_file, '<', $ARGV[0] ) or die "Open file $ARGV[0] failed $!"; while ($line = <$input_file>) { chomp $line; my @fields = split(/\|/, $line); #Check if record is a valid record type if ($fields[0] !~ /$record_types/) { fatal_error (2, "record contains invalid file type fields[0] - + Record: $line"); exit 0; } #Check if number of fields in record matches the number in the record +layout my $expected_nbr_of_fields_in_record = keys %{$rec_layout_hash{$fi +elds[0]}}; my $actual_fields_count = @fields; if ($actual_fields_count != $expected_nbr_of_fields_in_record) { fatal_error (1, "record does not contain correct number of fi +elds - Expected $expected_nbr_of_fields_in_record but record containe +d $actual_fields_count fields - $line"); exit 0; } #Process each field from the input data one field at a time for (my $i = 1; $i <= $actual_fields_count; $i++) { my $j = $i; $j -= 1; #$j is minus 1 becau +se the fields array starts at zero, whilst the actual field number in + the record array starts at 1 #Determine which sub routine is required to check the data from the re +cord_layout hash my $sub_routine = $rec_layout_hash{$fields[0]}{$i}{"sub_rout +ine"}; #Call sub routine and pass the actual field day and the expected lengt +h of the fiel my $value1 = $fields[$j]; my $value2 = $rec_layout_hash{$fields[0]}{$i}{"field_length" +}; &{ $sub_routine } ($value1, $value2); } }
    It's when I then call the sub routine that I get the message
    Can't use string ("check_char") as a subroutine ref while "strict refs" in use

    Is there any way I can call the sub routine - which will be in a separate module (not that that should make any difference) without turned off strict? Thanks for your time Kev

How to make this substitutions without splitting the strings?
4 direct replies — Read more / Contribute
by Anonymous Monk
on Jul 28, 2014 at 04:34
    Hi fellow Monks!
    I have two lines, like the following:
    $str1='---DAAAGLRG--G--G-P-LT-I--A--PG----A-----T----LG---G-YG-------- +--------------------------------SVT---------------------------------- +---------------------------------------------------G-------NV-T------ +NN---G----TI----SVANALPSLASSLPGDFRIF--------------------------------- +--------------------------GTLTNAGVVELRGRVVGN--G-LA-V-S------------G-- +------N---Y---VGQN----------------------GAVN-------------MN-TT------- +--L--AG--D----------------------------------------------------------- +--------------------------------------------------------------------- +--------------------------------------------------------------------- +----------------------------------------------------G---------------- +-----A-------PS-------D-TL-LI---------------GGVPA-VATAS---------G---- +K--------T----T---------L-------------------------------------------- +--------------N-----VTNVGG---------------AGAL------------------------ +------------------------------------------TK-SDGI---------RL-VY------ +----------AVNFA-N---------T-------------------G---N-A--F--TLAG----GTV +S--AG---------------------------------------------------------------- +---------AYSYY--------------LV--KGGV-T------------------------------- +--------------------------------------------------------------------- +--------------------------------------------------------------------- +--------------------------------------------------------------------- +--------------------------------------------------------------------- +--------------------------------------------------------------------- +--------------------A-----------------LTG---------EDWYLR-S----------- +---------------------------------------------------TVPPR-P-DQ---P---- +--------------------------------------------------------------------- +--------------------------------------------------------------------- +--------------------------------------------------------------------- +--------------------------------------------------------------------- +--------------------------------------------------------------------- +--------------------------------------------------------------------- +--------------------------------------------------------------------- +-T-QQ--PPF----------------------------------------------------------- +---------------------S--V-A---DG-TP-ES--I-----------V---------------- +--E--AV-K---N----------------A--AP-DA-------------------------------- +--------------------------------------------------------K-------PEP-- +------------------------------------------------------------V-------- +----------YR--------------------------------------------------------- +----------PEV--PL-YS-----------EVP----------------------------------- +--------------------------------------------------------------------- +---------------------------------------------A--VARQ----------------- +-----LG---L-L------------Q--------IDT-F-H----------------DRQ-------G- +EQG--LL-----AEN-G-S-------------------------------------------------- +--------------------------------------------------------------------- +--------------------------------------------------------------------- +------VP----VSWSRVW-----------GGY---SN------IKQ-NG------------------- +-------DVTPSY--DGTVW-----G--MQVGQ---DLY-----ADNRP-------SGHRNHYGFF--- +-LGF------SR--AIGDVNGFA--------------------------------------LAQPDL-- +------GVGSLQVN-A-Y-N----L--G--G-YWT-----------------------------H---- +IGPG--------------GWYTDA--------------------------VV--MGS-V--LT---V-- +RTHSN-------------------------------N------NVSGS--T-D--GNA--VTGS-V--E +AGV--P--I------------SL------G-YG----------L--------------T----L----- +----E-PQA-QLLW-QWLS-LA--RFND------G-------V-------------------------- +--------SDV----T--W-----NN-GNTFLGR----IG-ARL--------QY-----AFDAN----- +-GVSWK--------------------PYLRVNVLR--S--FG-S--DD----------RTT-----FG- +----GS----TT------------------------IG-TQ-VG-------Q--T--AGQIGA-GL-VA +-Q--LT-KR----GSVYA--T--V--S---Y---------LT-NL-----GG----E----H----QR- +---T---I--T---GNAGVRW--'; $str2='XXXXXXXXXXX..X..X.X.XX.X..X..XX....X.....X....XX...X.XX........ +................................XXX.................................. +...................................................X.......XX.X...... +XX...X....XX....XXXXX................................................ +.........................................XXX..X.XX.X.X............X.. +......X...X...XXXX......................XXXX.............XX.XX....... +..X..XX..X........................................................... +..................................................................... +..................................................................... +....................................................X................ +.....X.......XX.......X.XX.XX...............XXX......XX.........X.... +X........X....X.........X............................................ +..............X.....XXXXXX................XXX........................ +..........................................XX.XXXX.........XX.X....... +...........XXXX.X..X....X.X...................X...X.X..X..XXX......XX +X..XX................................................................ +.........XXXXX..............XX..XXXX.X............................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +....................X..............XXXXXX.........XXXXXX.X........... +...................................................XXXXX.X.XX...X.... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +..................................................................... +.X.XX..XXX.........XX..X...X......................................... +.....................X..X.X...XX.XX.XX..X...........X................ +..X..XX.X...X................X..XX.XX................................ +........................................................X.......XXX.. +............................................................X........ +...X..X.X.XX......................................................... +..........XXX..XX.XX...........XXX................................... +..................................................................... +.............................................X..XXXX................. +.....XX...X.XX.........XXX........XXX.X.X................XXX.......X. +XXX..XX......XX.X.X.................................................. +..................................................................... +..................................................................... +......XX....XIIIIII...........III...II.......XXXX.................... +........XXXXX..XXXXX.....X..XXXXX...XXX.....XXX............XXXXXXX... +.XXX......XX..XXXXXX.............................................X... +........XXXXXX.X.X.X....X..X..X.XXX.............................X.... +XXXX...............XXXXX..........................XX..XXX.X..XX...X.. +XXXXXX.XX..XX......................XX......XXXXX..X.X..XXX..XXXX.X..X +XXX..X..X............XX......X..X..........X..............X....X..... +....X.XXX.XXXX.XXXX.XX..XXXX......X.......XX....X.................... +X.X.....XXX....X..X.....XX.XXXXXXX....XX.XXX........XX.....XXXXX..... +.XXXXX....................XXXXXXXXX..X..XX.X..XX....XX...XXXX.....XX. +....XX....XX............X....XX....XXX.XX.XX.......X..X..XXXXXX.XX.XX +.X..XX.XX....XXXXX..X..X..X...X.........X...X......X....X....X....XX. +...X...X..X...XXXXXXXXX';

    The goal is, for each of the positions in $str1 that are -, erase the respective positions in $str2. The desired output should then be:
    DAAAGLRGGGPLTIAPGATLGGYGSVTGNVTNNGTISVANALPSLASSLPGDFRIFGTLTNAGVVELRGR +VVGNGLAVSGNYVGQNGAVNMNTTLAGDGAPSDTLLIGGVPAVATASGKTTLNVTNVGGAGALTKSDGI +RLVYAVNFANTGNAFTLAGGTVSAGAYSYYLVKGGVTALTGEDWYLRSTVPPRPDQPTQQPPFSVADGT +PESIVEAVKNAAPDAKPEPVYRPEVPLYSEVPAVARQLGLLQIDTFHDRQGEQGLLAENGSVPVSWSRV +WGGYSNIKQNGDVTPSYDGTVWGMQVGQDLYADNRPSGHRNHYGFFLGFSRAIGDVNGFALAQPDLGVG +SLQVNAYNLGGYWTHIGPGGWYTDAVVMGSVLTVRTHSN------NNVSGSTDGNAVTGSVEAGVPISL +GYGLTLEPQAQLLWQWLSLARFNDGV----SDVTWNNGNTFLGRIGARLQYAFDANGVSWKPYLRVNVL +RSFGSDDRTTFGGSTTIGTQVGQTAGQIGAGLVAQLTKRGSVYATVSYLTNLGGEHQRTITGNAGVRW XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX............................. +.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....XXXXXXXXXXXXXX.XXXXXXXXX +XXX..XXXXXXXXXXXXX..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..XXXXIIIII +IIIIIIXXXX..XXXXXXXXXXXXXXXXXXXXXX.....XXXXXXXXXXXXXXXXXX.......X...X +XXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX..X.X.XXXXXXXXXXXXX

    My approach would be to split $str1 and $str2 and then, foreach of the positions in $str1 that are - I would erase the corresponding positions in $str2.
    The problem is that I have a very large file of such cases and split would be rather slow I reckon.
    Any faster way maybe?
Validating XML file with XML::Schematron::LibXSLT
4 direct replies — Read more / Contribute
by hiruzen
on Jul 28, 2014 at 02:23
    I want to verify XML file using XML::Schematron::LibXSLT here is code i tried which uses .sch schemafile and XML file as argument
    use XML::Schematron::LibXSLT; my $schema_file = $ARGV[0]; my $xml_file = $ARGV[1]; die "Usage: perl schematron.pl schemafile XMLfile.\n" unless defined $schema_file and defined $xml_file; my $tron = XML::Schematron::LibXSLT->new(); $tron->schema($schema_file); my $ret = $tron->verify($xml_file); print $ret . "\n";
    It is giving error Can't locate object method "new" via package "XML::Schematron::LibXSLT" at schematron.pl line 14. which tell module don't have new method. May be module is updated.
    use XML::Schematron; my $pseudotron = XML::Schematron->new_with_traits( traits => ['LibXSLT +'], schema => "$schema_file"); my $messages = $pseudotron->verify($xml_file); print "$messages\n";
    But it dosen't print anything. Don't know what is wrong!
    Also at https://metacpan.org/pod/XML::Schematron::LibXSLT Synopsis, 2nd and 3rd use are giving same error.
    The same problem is also posted on stackoverflow.com at StackOverflow
keep only unique elements in an array displaying number of duplcates.
3 direct replies — Read more / Contribute
by john.tm
on Jul 27, 2014 at 23:54
    I have to run a report from 2 csv files, i am stuck on the part where i want to keep only unique elements from column B, deleting any duplicates but displaying the count of how many duplicates there were. then i wish to reference this array in the 2nd csv file, is that possible? sample of data
    input output james james 2 dave dave 2 mike mike 3 ken ken 3 jon jon 5 jon ken jon mike james dave mike ken jon jon
    The code i have so far. I can keep only unique elements but am stuck on how to show duplicate count.
    #!/usr/bin/perl use strict; use warnings; use Tk; use Tk::BrowseEntry; use POSIX 'mktime'; use POSIX 'strftime'; open(STDERR, ">&STDOUT"); ######## entry widget to get $yyyy $mmm $dd #################### +################### print "\n Select Year = $yyyy\n"; print "\n Select Month = $mmm\n"; print "\n Number of Backup Days = $dd\n"; ######## create input and output files ################## +##################### my $filerror = "\n\n! Cannot open File below, please check it exists o +r is not open already?\n"; my $OUTFILE = "C:\\Temp\\$yyyy\$mmmAudit.txt"; my $INFILE1 = "c:\\$yyyy\\$mmm\\report.csv"; my $INFILE = "c:\\$yyyy\\$mmm\\names.csv"; #Open input file for reading and Output file for writting open (INPUT,"$INFILE") or die "\n$filerror\$INFILE",,1; #open (OUTPUT,">$OUTFILE") or die "\n$filerror\n$OUTFILE",,1; my $total_names = 0; $total_names++ while (<INPUT>); my $Month_total = $total_names * $dd; ######### get total number of rows in files ################# +################# print "\n Total number of names is $total_names\n"; print "\n Total number of names is $Month_total\n"; close INPUT; open (INPUT,"$INFILE") or die "\n$filerror\$INFILE",,1; ######### keep only unique names and display number count of du +plactes ######### my %seen; while (<INPUT>) { chomp; my $line = $_; my @elements = split (",", $line); my $col_name = $elements[1]; print " $col_name \n" if ! $seen{$col_name}++; } close INPUT;
Question about a perl script
4 direct replies — Read more / Contribute
by Aspec
on Jul 27, 2014 at 19:42
    I'm having issues posting to this page for some reason so I'm hoping that maybe a shorter post will help. Please check this pastebin page for the information about my question. I'm keeping my fingers crossed this post goes through.....

    UPDATE:
    I'm thinking that it was maybe some of my html tags I was using in the process of creating my post or maybe it was just too long as it was my very first post on this forum and I just registered 10 minutes ago. Probably a spam prevention measure I would think

    Following content appended from paste bin by GrandFather

    Hello Monks,
    This is my first time here on your forums and I have absolutely no perl experience what-so-ever but I was hoping that someone could answer a question for me. I am working on creating a blacklist to block tor exit nodes to help thwart some of the attacks that I've been seeing take place on my website. I found a post with a perl script that will download the list of exit nodes and place them each on a new line. I'm always cautious about running a script on my machine that I have absolutely no idea what it does so I wanted someone to see if they could tell me if this is the case or not.

    found is a list of all the tornodes updated every half an hour. This list SHOULD include the exit,entries and bridge nodes used to connect and browse through tor
    use this perl script to gather the ips from a downloaded webpage
    perl -lne 'print $& if /(\d+.){3}\d+/' downloadedwebpage.html > listof +ips.out
    it will give you a list of ips, one per line. i have tried to find something that will do this without Perl script but after many hours searching i could not find one. hope this helps

    I also found this link from the page referenced above that has the list of ips exactly how I want them to come through.

    Does this seem like a reasonable solution to anyone? I would have to think there should be another way to do this but if this works they way the poster states then I might just use it. Anyone care to look at that code real quick and see if it would be safe and/or offer up a suggestion on a different solution to this. I'm trying to get the exit mode list downloaded every 30 minutes and have it update my systems banlist accordingly. I can handle the second part of this but I wanted some input as to getting the data onto my machine in the first place in a format that can be used for my banlist.

    Thank you in advance for your assistance,

    Bob
print result in text/html file-perl cgi
4 direct replies — Read more / Contribute
by myfrndjk
on Jul 27, 2014 at 16:16

    Hi monks I am here to seek a help from you .I have perl-cgi script ,when called it has to crawl the site and print the crawled data both in web page and as text/html file.If I use command prompt to execute the script it works fine, however if I execute through browser contents displayed only in web page not printed in external file.Thanks in advance

    #!/usr/bin/perl use strict; use warnings; use HTML::TreeBuilder::XPath; use LWP::UserAgent ; use HTTP::Request ; open (OUT, '>:encoding(cp1252)',"/home/local/ANT/hemesh/Desktop/test.h +tml"); my $URL = 'http://www.7dayshop.com/delivery-and-returns'; my $agent = LWP::UserAgent->new(agent => "Mozilla/5.0"); my $request = HTTP::Request->new(GET=> $URL); my $response = $agent->request($request); # Check the outcome of the response if ($response->is_success) { my $xp = HTML::TreeBuilder::XPath->new_from_url($URL); my $node = $xp->findnodes_as_string('//strong[contains(.,\'UK Mainland + Standard\')]'); print "Content-type: text/html\n\n"; print OUT $node and print $node; } elsif ($response->is_error) { print "Error:$URL\n"; print $response->error_as_HTML; }

    Expected result

    Web page: my crawl data

    test.html in desktop

DBD:Pg getting output in an array
1 direct reply — Read more / Contribute
by terrykhatri
on Jul 27, 2014 at 13:43
    Hi,

    I have been googling around to see if I can find an example on getting query results in arrays so I can use it in charts but no luck therefore I am knocking your doors once again to get the solution, here is my query.

    my $sql = qq! SELECT a."FirstName"::TEXT || ' ' ||a."LastName" AS "Labels" +, ROUND(SUM((b."UnitPrice" - b."Discount") * b."Quantit +y")) AS "Data" FROM "Employees" a, "Order_Details" b, "Orders" c WHERE a."EmployeeID" = c."EmployeeID" AND b."OrderID" = c."OrderID" GROUP BY 1 ORDER BY 2 DESC LIMIT 10!; my $sth=$dbh->prepare("$sql"); $sth->execute() || quit(); while (my $ref = $sth->fetchrow_hashref()) { my $labels = $ref->{'Labels'}; my $data = $ref->{'Data'}; }
    The required ouput format is as under :
    $labels = [label1, label2, label3.....]; $data = [data1, data2, data3.........];

    As usual your help would be much appreciated.

    Many many thanks!!

    Terry
Sorting using the highest last column criteria
3 direct replies — Read more / Contribute
by deepakshyl
on Jul 27, 2014 at 11:05
    ORF                                        PHAGE_NAME              START     END     Hvalue
    ***************************************************************************************************************
    orf00007                    PHAGE_Prochl_MED4_213_NC_020845-gi|472340344|ref|YP_007673870.1|     7665 8618    0.210897481636936
    orf00007                    PHAGE_Prochl_P_HM2_NC_015284-gi|326783200|ref|YP_004323597.1|        7665 8618    0.207761175236097
    orf00007                    PHAGE_Prochl_P_HM1_NC_015280-gi|326782251|ref|YP_004322652.1|        7665 8618    0.207761175236097
    orf00007                    PHAGE_Prochl_Syn1_NC_015288-gi|326784174|ref|YP_004324567.1|         7665 8618    0.176257712486884
    orf00007                    PHAGE_Cyanop_P_RSM6_NC_020855-gi|472341546|ref|YP_007675062.1|       7665 8618    0.201443231899265
    orf00007                    PHAGE_Synech_syn9_NC_008296-gi|113200706|ref|YP_717869.1|            7665 8618    0.188906505771249
    
    
    
    1. ignore 1st and 2nd line
    2. Take colum one and compare the row 3 and 4 it should be equal
    3. Take colum two and comapre the row 3 and 4 it should be equal
    4. then check colum 4 and check row 3 and 4 greater value, if found the greater value check with the next row and print greater value of the same group.
    
    
    The code i had tried for it is
    #!/usr/bin/perl
    #use strict;
    use warnings;
    
    open FILE,"out07.txt";
    
    my @fields = split / /, <FILE>;
    chomp @fields;
    my @lines = split (/(\n)/, "@fields");
    for (@lines)
    {
        print @fields,"\n";
        
    } 
raw_pty of Expect.pm / IO::Pty not working properly on OSX?
1 direct reply — Read more / Contribute
by szabgab
on Jul 27, 2014 at 11:02
    I was just testing one of my code examples for Expect.pm that works on Linux (perl 5.18.1 and 5.20.0) but apparently does not work on OSX (5.20.0) . I wrote a test case and added it to https://github.com/szabgab/expect.pm/blob/master/t/02-bc.t.

    Any idea why this does not work on OSX? Am I doing it wrong or is this a bug in IO::Pty? Could anyone with OSX test this?

Creating a Hash Syntax Error
4 direct replies — Read more / Contribute
by ms238
on Jul 27, 2014 at 07:48
    Hi, I'm trying to learn Perl and every now and then I run into an error on a script that I think ought to be correct. I'm not sure if I have an obvious error somewhere or not but my IDE keeps saying there is an error at line 6 (error: Can't modify not in scalar assignment). I was thinking maybe my close parenthesis or semicolon at the end of the hash is off. However, modifying that line/area doesn't seem to fix things. I'm posting the code for some help please.
    !#/usr/bin/perl %words = qw(Sarah cat Bob dog Ronald apple Eric banana); print "What is your name?"; $name = <STDIN>; chomp ($name); if ($name eq "Jerry") { print "Hi, Jerry! Have a good day!\n";} else {print "Hello, $name!\n"; #normal greeting $secretword = $words{$name}; #get the secret word print "Guess the secret word.\n"; $guess = <STDIN>; chomp ($guess); while ($guess ne $secretword) { print "I'm sorry. That is not the correct word. Please try again. + What is the secret word?"; $guess = <STDIN>; chomp ($guess); } }

Add your question
Title:
Your question:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":


  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others surveying the Monastery: (7)
    As of 2014-07-28 22:59 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      My favorite superfluous repetitious redundant duplicative phrase is:









      Results (210 votes), past polls