Check Device’s User-Agent using Perl

There is a CPAN library that helps to parse the User-Agent. You can download the Perl library at:

After you download the library, perform the usual installation procedures:

perl Makefile.PL
make install

The following is the source code:

use strict;

use Mobile::UserAgent;
my $uaobj = new Mobile::UserAgent();

The codes above is the standard declaration so that you can call “Mobile::UserAgent” library. The following 3 lines are used for testing purposes. Uncomment the following 3 lines and comment the above 1 line to do some testing.

#my $useragent = 'Nokia6600/1.0 (4.09.1) SymbianOS/7.0s Series60/2.0 '.
#   'Profile/MIDP-2.0 Configuration/CLDC-1.0';
#my $uaobj = new Mobile::UserAgent($useragent);

The following lines check the User-Agent string and pass the output to the subroutine “printWml” if the device suppose WML or the subroutine “printHtml” if the device doesn’t.

if ($uaobj->success()) {
   my $out='Vendor: ' . $uaobj->vendor()     . "
\n"; $out.='Model: ' . $uaobj->model() . "
\n"; $out.='Version: ' . $uaobj->version() . "
\n"; $out.='Series60: ' . $uaobj->isSeries60() . "
\n"; &printWml($out); } else { &printHtml("Connecting Client is not a mobile user-agent \n"); }

The subroutine “printWml” is used to print the standard WML content on the device.

sub printWml {
   my $string= shift;
   print "Content-Type: text/vnd.wap.wml\r\n\r\n";
print <



Test script by Art of Mobile


The subroutine “printHtml” is used to print the standard HTML content on the browser.

sub printHtml{
   my $string= shift;
   print "Content-Type: text/html\r\n\r\n";
print <



You can download the full source code at

You can test the example by pointing your mobile phone’s WAP broswer to this url: