The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.


HTML::SocialMedia - Put social media links onto your website


Version 0.29


Many websites these days have links and buttons into social media sites. This module eases links into Twitter and Facebook.

    use HTML::SocialMedia;
    my $sm = HTML::SocialMedia->new();
    # ...

The language of the text displayed will depend on the client's choice, making HTML::SocialMedia ideal for running on multilingual sites.

Takes optional parameter logger, an object which is used for warnings and traces. This logger object is an object that understands warn() and trace() messages, such as a Log::Log4perl object.

Takes optional parameter cache, an object which is used to cache country lookups. This cache object is an object that understands get() and set() messages, such as an CHI object.

Takes optional parameter lingua, which is a CGI::Lingua object.



Creates a HTML::SocialMedia object.

    use HTML::SocialMedia;
    my $sm = HTML::SocialMedia->new(twitter => 'example');
    # ...

Optional parameters

twitter: twitter account name twitter_related: array of 2 elements - the name and description of a related account cache: This object will be an instantiation of a class that understands get and set, such as CHI. info: Object which understands host_name messages, such as CGI::Info.


Returns the HTML to be added to your website. HTML::SocialMedia uses CGI::Lingua to try to ensure that the text printed is in the language of the user.

    use HTML::SocialMedia;
    my $sm = HTML::SocialMedia->new(
        twitter => 'mytwittername',
        twitter_related => [ 'someonelikeme', 'another twitter feed' ]

    print "Content-type: text/html\n\n";

    print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">';
    print '<HTML><HEAD></HEAD><BODY>';

    print $sm->as_string(
        twitter_follow_button => 1,
        twitter_tweet_button => 1,      # button to tweet this page
        facebook_like_button => 1,
        facebook_share_button => 1,
        linkedin_share_button => 1,
        reddit_button => 1,
        align => 'right',

    print '</BODY></HTML>';
    print "\n";

Optional parameters

twitter_follow_button: add a button to follow the account

twitter_tweet_button: add a button to tweet this page

facebook_like_button: add a Facebook like button

facebook_share_button: add a Facebook share button

linkedin_share_button: add a LinkedIn share button

reddit_button: add a Reddit button

align: argument to <p> HTML tag


Synonym for as_string.


Nigel Horne, <njh at>


When adding a FaceBook like button, you may find performance improves a lot if you use HTTP::Cache::Transparent.

Please report any bugs or feature requests to bug-html-socialmedia at, or through the web interface at I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

Would be good to have my ($head, $body) = $sm->onload_render();



You can find documentation for this module with the perldoc command.

    perldoc HTML::SocialMedia

You can also look for information at:



Copyright 2011-2024 Nigel Horne.

This program is released under the following licence: GPL2