We help IT Professionals succeed at work.

We've partnered with Certified Experts, Carl Webster and Richard Faulkner, to bring you a podcast all about Citrix Workspace, moving to the cloud, and analytics & intelligence. Episode 2 coming soon!Listen Now

x

How to I add CGI::small()?

dwater
dwater asked
on
Medium Priority
606 Views
Last Modified: 2013-12-25
Most html tags can be generated by CGI.pm methods. The <SMALL></SMALL> tag is missing, however, How can I add it, without creating a derived class.

Max.
Comment
Watch Question

ozo
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2015

Commented:
You could always just
print "<SMALL>...</SMALL>";

Author

Commented:
Yes, this is what I've done, but it doesn't fit in with the rest of the script which uses the CGI:: methods. I wanted to make it all clean. I'm sure there are other html tags which aren't in the module but this is the only one I need which isn't.

Max.
ozo
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2015

Commented:
You could also just add it to the module.
(even submit it to L. Stein so you'll be portable when he adds it)

Author

Commented:
OK. I may well do this. I'm guessing this is the only way of doing it.

Thanks.

Max.
ozo
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2015

Commented:
In Perl?  Surely not the "only way of doing it":-)

use CGI;
sub CGI::small {
          my $self = shift;
          print "<SMALL>@_</SMALL>\n";
}

Author

Commented:
Great! Just what I'm after.

Although, I guess I don't want it to print the string, just return it. Correct?

Thanks.

Max.
ozo
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2015

Commented:
Yes, return instead of print would fit in better with the other methods.
I only wanted to illustrate that it was possible, and got careless.
I'll check the CGI.pm source to if it wants a prototype to fit in, then post it as an answer.
CERTIFIED EXPERT
Most Valuable Expert 2014
Top Expert 2015
Commented:
One way to do it:

sub CGI::small {
          my($self,@p) = CGI::self_or_default(@_);
          return "<SMALL>@p</SMALL>\n";
}

Not the solution you were looking for? Getting a personalized solution is easy.

Ask the Experts

Author

Commented:
Actually, I found a preferable solution, which is documented in the CGI.pm file and read using the command 'pod2text CGI.pm' - pod2text is one of a family supplied with CPAN which consists of pod2html, pod2latex, pod2man, pod2text.

The relevant part of the text is :-

  Generating new HTML tags

    Since no mere mortal can keep up with Netscape and Microsoft
    as they battle it out for control of HTML, the code that
    generates HTML tags is general and extensible. You can create
    new HTML tags freely just by referring to them on the import
    line:

            use CGI shortcuts,winkin,blinkin,nod;

    Now, in addition to the standard CGI shortcuts, you've
    created HTML tags named "winkin", "blinkin" and "nod". You
    can use them like this:

            print blinkin {color=>'blue',rate=>'fast'},"Yahoo!";
            # <blinkin COLOR="blue" RATE="fast">Yahoo!</blinkin>

I supplied this information, just for the record.

Max.
Access more of Experts Exchange with a free account
Thanks for using Experts Exchange.

Create a free account to continue.

Limited access with a free account allows you to:

  • View three pieces of content (articles, solutions, posts, and videos)
  • Ask the experts questions (counted toward content limit)
  • Customize your dashboard and profile

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.