Check out the latest documentation.

Pattern Example

This is a console program takes a pattern data file and a useragent as argument and outputs data about the detected device.

This program requires the JSON package. If you do not already have it installed you can get it via CPAN:

									cpan JSON

									

Arguments:

  • -filename or - f : The path to a pattern data file.
  • -properties or - p : The properties to return. If not set a default set of properties will be used.
  • -ua : The useragent to use. If not set a default useragent taken from Google Chrome 35 will be used.
										
										use
										
										
										FiftyOneDegrees::
										
									PatternV3;

										
										use
										
									 JSON;

										
										use
										
										
										Data::
										
									Dumper;

										
										use
										
									 feature 
										
										qw/say/
										
									;

										
										use
										
										
										Getopt::
										
									Long;


										
										my
										
										
										$filename
										
									;

										
										my
										
										
										$propertyList
										
									;

										
										my
										
										
										$userAgentString
										
									;


										
										my
										
										
										$r
										
										
										=
										
									 GetOptions(
										
										'filename|f=s'
										
										
										=>
										
										
										\
										
										
										$filename
										
									,
                   
										
										'properties|p=s'
										
										
										=>
										
										
										\
										
										
										$propertyList
										
									,
                   
										
										'ua=s'
										
										
										=>
										
										
										\
										
										
										$userAgentString
										
									);


										
										$userAgentString
										
										
										//
										
										
										=
										
										
										"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36"
										
									;


										
										$propertyList
										
										
										//
										
										
										=
										
										
										"Id,BrowserName,BrowserVendor,BrowserVersion,CookiesCapable,IsTablet,IsMobile,IsCrawler"
										
									;


										
										die
										
										
										"DAT file does not exist! usage: $0 -f <dat filename>\n"
										
										
										unless
										
										
										-
										
									e (
										
										"$filename"
										
									);


										
										# Initialize Pattern library
										
										
										# For pattern a dataset pointer is needed. This will be passd into other
										
										
										# PatternV3 functions.
										
										
										my
										
										
										$dsPointer
										
										
										=
										
										
										FiftyOneDegrees::PatternV3::
										
									dataSetInitWithPropertyString(
										
										$filename
										
									, 
										
										$propertyList
										
									);

										
										my
										
										
										$json
										
										
										=
										
										
										FiftyOneDegrees::PatternV3::
										
									getMatch(
										
										$dsPointer
										
									, 
										
										$userAgentString
										
									);

say 
										
										"=== Data Output ==="
										
									;

										
										my
										
										
										%properties
										
										
										=
										
										
										%
										
									{ decode_json(
										
										$json
										
									) };

										
										# Loop through and print all returned properties
										
										
										while
										
									 (
										
										my
										
									 (
										
										$key
										
									, 
										
										$value
										
									) 
										
										=
										
										
										each
										
										
										%properties
										
									) {
	say 
										
										$key
										
										
										.
										
										
										": "
										
										
										.
										
										
										$value
										
									;
}


										
										FiftyOneDegrees::PatternV3::
										
									destroyDataset(
										
										$dsPointer
										
									);