NAME Cookies::Roundtrip - Convert between different HTTP Cookie formats, well, at least we tried! VERSION Version 0.01 SYNOPSIS This module provides functionality for converting between some of the various HTTP Cookie formats. Roundtrip is a bit of a wish really as there can be unsupported fields in the various Cookie formats. Anyway! Here we try to convert between HTTP::Cookies, HTTP::CookieJar, single Firefox::Marionette::Cookie or an ARRAY of Firefox::Marionette::Cookie, an ARRAY of Set-Cookie header strings, which cover WWW::Mechanize (and subclasses), LWP::UserAgent (and subclasses) and Firefox::Marionette. Note that WWW::Mechanize (and subclasses) and LWP::UserAgent (and subclasses) support both HTTP::Cookies, HTTP::CookieJar and this is controlled during construction. Example usage: use Cookies::Roundtrip qw/:all/; use HTTP::Cookies; use HTTP::CookieJar; # Skip discarded (expired etc.) cookies? my $skip_discard = 1; # or 0 # Verbosity level my $VERBOSITY = 1; # 0 to ... # from this HTTP::CookieJar cookie ... my $hcj = HTTP::CookieJar->new; $hc->add(...); # ... convert to HTTP::Cookies my $hc = httpcookiejar2httpcookies($hcj, undef, $skip_discard, $VERBOSITY); # ... or supply the HTTP::Cookies object ($hc) to append to as sub parameter httpcookiejar2httpcookies($hcj, $hc, $skip_discard, $VERBOSITY) or die; # and back ... my $hcj2 = httpcookies2httpcookiejar($hc, undef, $skip_discard, $VERBOSITY); # From LWP::UserAgent my $ua = LWP::UserAgent->new(cookie_jar_class=>'HTTP::CookieJar'); ... # extract them from LWP::UserAgent object $hcj = lwpuseragent_get_cookies($ua, $VERBOSITY); print "got ".count_cookies($hcj)." cookies\n"; # ... or load them into the LWP::UserAgent object # note that the 2nd param ($hcj) can be a filename to load from file # or any other Cookie object whose class we support lwpuseragent_load_cookies($ua, $hcj, $VERBOSITY); # write to files wwwmechanize_save_cookies_to_file($mech, 'out.cookies', $skip_discard, $VERBOSITY); lwpuseragent_save_cookies_to_file($ua, 'out.cookies', $skip_discard, $VERBOSITY); firefoxmarionette_save_cookies_to_file($ffm, 'out.cookies', $skip_discard, $VERBOSITY); # or load from files wwwmechanize_load_cookies_from_file($mech, 'my.cookies', $skip_discard, $VERBOSITY); wwwmechanize_load_cookies_from_file($ua, 'my.cookies', $skip_discard, $VERBOSITY); wwwmechanize_load_cookies_from_file($ffm, 'my.cookies', $skip_discard, $VERBOSITY); # write cookie to file httpcookies2file($hc, 'out.cookies', $skip_discard, $VERBOSITY); httpcookiejar2file($hcj, 'out.cookies', $skip_discard, $VERBOSITY); # read cookies from file $hc = file2httpcookies('my.cookies', undef, $VERBOSITY); # or append them to existing cookies object file2httpcookies('my.cookies', $hc, $VERBOSITY); # count cookies of any Cookies object whose class we support count_cookies($cookies_obj, $skip_discard, $VERBOSITY); # clone cookies of any Cookies object whose class we support my $newcook = clone_cookies($cookies_obj, $VERBOSITY); # merge Cookie objects OF THE SAME class $newcook = merge_cookies($cook1, $cook2, $skip_discard, $VERBOSITY); # compare Cookie objects OF THE SAME class (we support) for equality my $yes = cookies_are_equal($cook1, $cook2, $skip_discard, $VERBOSITY); # 1 or 0 or undef # stringify any Cookies object whose class we support print as_string_cookies($cook, $skip_discard, $VERBOSITY); EXPORT By default no symbols are exported. You need to manually import any symbol you wish to use. However, for your convenience the following export tags are available for importing symbols in groups. Note that the :all tag will import all the exportable symbols. * :all : everything * :lwpuseragent : lwpuseragent_save_cookies_to_file, lwpuseragent_load_cookies, lwpuseragent_load_cookies_from_file, lwpuseragent_load_setcookies, lwpuseragent_load_httpcookies, lwpuseragent_load_httpcookiejar, lwpuseragent_get_cookies * :wwwmechanize : wwwmechanize_save_cookies_to_file, wwwmechanize_load_cookies, wwwmechanize_load_cookies_from_file, wwwmechanize_load_setcookies, wwwmechanize_load_httpcookies, wwwmechanize_load_httpcookiejar, wwwmechanize_get_cookies * :firefoxmarionette : firefoxmarionettecookies2file, firefoxmarionettecookies2httpcookies, firefoxmarionettecookies2httpcookiejar, firefoxmarionettecookies2setcookies, * :clone : clone_httpcookiejar, clone_httpcookies, clone_setcookies, clone_cookies * :merge : merge_httpcookies, merge_httpcookiejar, merge_setcookies, merge_firefoxmarionettecookies, merge_cookies * :count : count_httpcookies, count_httpcookiejar, count_setcookies, count_firefoxmarionettecookies, count_cookies * :equal : cookies_are_equal, cookies_are_equal_httpcookies, cookies_are_equal_httpcookiejar, cookies_are_equal_setcookies, cookies_are_equal_firefoxmarionettecookie, cookies_are_equal_firefoxmarionettecookies * :setcookies2 : setcookies2httpcookiejar, setcookies2httpcookies * :httpcookies2 : httpcookies2setcookies, httpcookies2file, httpcookies2httpcookiejar, httpcookies2firefoxmarionettecookies * :httpcookiejar2 : httpcookies2setcookies, httpcookies2file, httpcookies2httpcookiejar, httpcookies2firefoxmarionettecookies * :firefoxmarionettecookies2 : firefoxmarionettecookies2file, firefoxmarionettecookies2httpcookies, firefoxmarionettecookies2httpcookiejar, firefoxmarionettecookies2setcookies * :new : new_firefoxmarionettecookie, new_firefoxmarionettecookies * :file : file2httpcookiejar, httpcookiejar2file, file2httpcookies, httpcookies2file, firefoxmarionettecookies2file, file2firefoxmarionettecookies, setcookies2file, file2setcookies, lwpuseragent_save_cookies_to_file, lwpuseragent_load_cookies_from_file, wwwmechanize_save_cookies_to_file, wwwmechanize_load_cookies_from_file, cookies2file * :as_string : as_string_httpcookiejar, as_string_httpcookies, as_string_setcookies, as_string_cookies, as_string_firefoxmarionettecookies SUBROUTINES Below, $skip_discard is a flag dictating whether to skip discarded cookies during the operation (value of 1) or not (value of 0). $verbosity denotes the verbosity level as an integer. 0 being mute. lwpuseragent_get_cookies my $ret = lwpuseragent_get_cookies($ua, $verbosity); Arguments: * $ua * $verbosity Return value: * $ret : a cookie object on success or undef on failure. It returns the cookies of the specified LWP::UserAgent object. lwpuseragent_save_cookies_to_file my $ret = lwpuseragent_save_cookies_to_file($ua, $filename, $skip_discard, $verbosity); Arguments: * $ua * $filename * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. It saves the cookies held in specified LWP::UserAgent object to specified file. It returns ($ret) 1 on failure or 0 on success. lwpuseragent_load_cookies my $ret = lwpuseragent_load_cookies($ua, $cookies_or_file_etc, $verbosity); Arguments: * $ua * $cookies_or_file_etc * $verbosity Return value: * $ret : a cookie object on success or undef on failure. This is a generic function to load any type of cookies into the specifed LWP::UserAgent object. Cookies can be in a file ($cookies_or_file_etc is a scalar holding the filename), or a Cookies object we support or an ARRAY_REF of SetCookie strings or an ARRAY_REF of Firefox::Marionette::Cookie objects. lwpuseragent_load_cookies_from_file my $ret = lwpuseragent_load_cookies_from_file($ua, $filename, $skip_discard, $verbosity); Arguments: * $ua * $filename * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. It loads cookies from file into the specifed LWP::UserAgent object. lwpuseragent_load_cookies will do the same job when specified with a filename. It returns undef on failure or the cookies read from file as a Cookies object on success. Note that LWP::UserAgent supports both HTTP::Cookies and HTTP::CookieJar, the class of the returned object will be one of these, depending what the specified LWP::UserAgent object was instructed to hold, by using my $ua = LWP::UserAgent->new(cookie_jar_class=>'HTTP::CookieJar'); lwpuseragent_load_setcookies my $ret = lwpuseragent_load_setcookies($ua, $setcookies, $verbosity); Arguments: * $ua * $setcookies * $verbosity Return value: * $ret : a cookie object on success or undef on failure. lwpuseragent_load_firefoxmarionettecookies my $ret = lwpuseragent_load_firefoxmarionettecookies($ua, $firefoxmarionettecookies, $verbosity); Arguments: * $ua * $firefoxmarionettecookies * $verbosity Return value: * $ret : a cookie object on success or undef on failure. lwpuseragent_load_httpcookies my $ret = lwpuseragent_load_httpcookies($ua, $httpcookies, $skip_discard, $verbosity); Arguments: * $ua * $httpcookies * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. lwpuseragent_load_httpcookiejar my $ret = lwpuseragent_load_httpcookiejar($ua, $httpcookiejar, $skip_discard, $verbosity); Arguments: * $ua * $httpcookiejar * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. firefoxmarionette_get_cookies my $ret = firefoxmarionette_get_cookies($ffmar, $verbosity); Arguments: * $ffmar * $verbosity Return value: * $ret : a cookie object on success or undef on failure. firefoxmarionette_save_cookies_to_file my $ret = firefoxmarionette_save_cookies_to_file($ffmar, $filename, $skip_discard, $verbosity); Arguments: * $ffmar * $filename * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. firefoxmarionette_load_cookies my $ret = firefoxmarionette_load_cookies($ffmar, $cookies_or_file_etc, $visit_cookie_domain_first, $skip_discard, $verbosity); Arguments: * $ffmar * $cookies_or_file_etc * $visit_cookie_domain_first * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. firefoxmarionette_load_cookies_from_file my $ret = firefoxmarionette_load_cookies_from_file($ffmar, $filename, $visit_cookie_domain_first, $skip_discard, $verbosity); Arguments: * $ffmar * $filename * $visit_cookie_domain_first * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. firefoxmarionette_load_setcookies my $ret = firefoxmarionette_load_setcookies($ffmar, $setcookies, $visit_cookie_domain_first, $skip_discard, $verbosity); Arguments: * $ffmar * $setcookies * $visit_cookie_domain_first * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. firefoxmarionette_load_firefoxmarionettecookies my $ret = firefoxmarionette_load_firefoxmarionettecookies($ffmar, $firefoxmarionettecookies, $visit_cookie_domain_first, $skip_discard, $verbosity); Arguments: * $ffmar * $firefoxmarionettecookies * $visit_cookie_domain_first * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. firefoxmarionette_load_httpcookies my $ret = firefoxmarionette_load_httpcookies($ffmar, $httpcookies, $visit_cookie_domain_first, $skip_discard, $verbosity); Arguments: * $ffmar * $httpcookies * $visit_cookie_domain_first * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. firefoxmarionette_load_httpcookiejar my $ret = firefoxmarionette_load_httpcookiejar($ffmar, $httpcookiejar, $visit_cookie_domain_first, $skip_discard, $verbosity); Arguments: * $ffmar * $httpcookiejar * $visit_cookie_domain_first * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. wwwmechanize_get_cookies my $ret = wwwmechanize_get_cookies($mech, $verbosity); Arguments: * $mech * $verbosity Return value: * $ret : a cookie object on success or undef on failure. wwwmechanize_save_cookies_to_file my $ret = wwwmechanize_save_cookies_to_file($mech, $filename, $skip_discard, $verbosity); Arguments: * $mech * $filename * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. wwwmechanize_load_cookies my $ret = wwwmechanize_load_cookies($mech, $cookies_or_file_etc, $verbosity); Arguments: * $mech * $cookies_or_file_etc * $verbosity Return value: * $ret : a cookie object on success or undef on failure. wwwmechanize_load_cookies_from_file my $ret = wwwmechanize_load_cookies_from_file($mech, $filename, $skip_discard, $verbosity); Arguments: * $mech * $filename * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. wwwmechanize_load_setcookies my $ret = wwwmechanize_load_setcookies($mech, $setcookies, $verbosity); Arguments: * $mech * $setcookies * $verbosity Return value: * $ret : a cookie object on success or undef on failure. wwwmechanize_load_firefoxmarionettecookies my $ret = wwwmechanize_load_firefoxmarionettecookies($mech, $firefoxmarionettecookies, $verbosity); Arguments: * $mech * $firefoxmarionettecookies * $verbosity Return value: * $ret : a cookie object on success or undef on failure. wwwmechanize_load_httpcookies my $ret = wwwmechanize_load_httpcookies($mech, $httpcookies, $skip_discard, $verbosity); Arguments: * $mech * $httpcookies * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. wwwmechanize_load_httpcookiejar my $ret = wwwmechanize_load_httpcookiejar($mech, $httpcookiejar, $skip_discard, $verbosity); Arguments: * $mech * $httpcookiejar * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. new_firefoxmarionettecookie my $ret = new_firefoxmarionettecookie($params, $skip_discard, $verbosity); Arguments: * $params * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. new_firefoxmarionettecookies my $ret = new_firefoxmarionettecookies($params, $skip_discard, $verbosity); Arguments: * $params * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. cookies2file my $ret = cookies2file($cookies, $filename, $skip_discard, $verbosity); Arguments: * $cookies * $filename * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. httpcookiejar2file my $ret = httpcookiejar2file($httpcookiejar, $filename, $skip_discard, $verbosity); Arguments: * $httpcookiejar * $filename * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. file2httpcookiejar my $ret = file2httpcookiejar($filename, $httpcookiejar, $skip_discard, $verbosity); Arguments: * $filename * $httpcookiejar * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. file2httpcookies my $ret = file2httpcookies($filename, $httpcookies, $verbosity); Arguments: * $filename * $httpcookies * $verbosity Return value: * $ret : a cookie object on success or undef on failure. httpcookies2file my $ret = httpcookies2file($httpcookies, $filename, $skip_discard, $verbosity); Arguments: * $httpcookies * $filename * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. firefoxmarionettecookies2file my $ret = firefoxmarionettecookies2file($firefoxmarionettecookies, $filename, $skip_discard, $verbosity); Arguments: * $firefoxmarionettecookies * $filename * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. file2firefoxmarionettecookies my $ret = file2firefoxmarionettecookies($filename, $firefoxmarionettecookies, $skip_discard, $verbosity); Arguments: * $filename * $firefoxmarionettecookies * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. setcookies2file my $ret = setcookies2file($setcookies, $filename, $skip_discard, $verbosity); Arguments: * $setcookies * $filename * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. file2setcookies my $ret = file2setcookies($filename, $setcookies, $skip_discard, $verbosity); Arguments: * $filename * $setcookies * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. httpcookies2httpcookiejar my $ret = httpcookies2httpcookiejar($httpcookies, $httpcookiejar, $skip_discard, $verbosity); Arguments: * $httpcookies * $httpcookiejar * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. httpcookies2firefoxmarionettecookies my $ret = httpcookies2firefoxmarionettecookies($httpcookies, $firefoxmarionettecookies, $skip_discard, $verbosity); Arguments: * $httpcookies * $firefoxmarionettecookies * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. clone_cookies my $ret = clone_cookies($w, $verbosity); Arguments: * $w * $verbosity Return value: * $ret : a cookie object on success or undef on failure. clone_httpcookiejar my $ret = clone_httpcookiejar($httpcookiejar, $verbosity); Arguments: * $httpcookiejar * $verbosity Return value: * $ret : a cookie object on success or undef on failure. clone_firefoxmarionettecookie my $ret = clone_firefoxmarionettecookie($firefoxmarionettecookie, $verbosity); Arguments: * $firefoxmarionettecookie * $verbosity Return value: * $ret : a cookie object on success or undef on failure. clone_firefoxmarionettecookies my $ret = clone_firefoxmarionettecookies($firefoxmarionettecookies, $verbosity); Arguments: * $firefoxmarionettecookies * $verbosity Return value: * $ret : a cookie object on success or undef on failure. clone_httpcookies my $ret = clone_httpcookies($httpcookies, $skip_discard, $verbosity); Arguments: * $httpcookies * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. merge_cookies my $ret = merge_cookies($obj1, $obj2, $skip_discard, $verbosity); Arguments: * $obj1 * $obj2 * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. merge_httpcookies my $ret = merge_httpcookies($httpcookies_src, $httpcookies_dst, $skip_discard, $verbosity); Arguments: * $httpcookies_src * $httpcookies_dst * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. merge_httpcookiejar my $ret = merge_httpcookiejar($httpcookiejar_src, $httpcookiejar_dst, $skip_discard, $verbosity); Arguments: * $httpcookiejar_src * $httpcookiejar_dst * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. merge_firefoxmarionettecookies my $ret = merge_firefoxmarionettecookies($src, $dst); Arguments: * $src * $dst Return value: * $ret : a cookie object on success or undef on failure. setcookies2httpcookiejar my $ret = setcookies2httpcookiejar($setcookies, $httpcookiejar, $verbosity); Arguments: * $setcookies * $httpcookiejar * $verbosity Return value: * $ret : a cookie object on success or undef on failure. setcookies2firefoxmarionettecookies my $ret = setcookies2firefoxmarionettecookies($setcookies, $firefoxmarionettecookies, $verbosity); Arguments: * $setcookies * $firefoxmarionettecookies * $verbosity Return value: * $ret : a cookie object on success or undef on failure. setcookie2firefoxmarionettecookie my $ret = setcookie2firefoxmarionettecookie($setcookie, $firefoxmarionettecookie, $verbosity); Arguments: * $setcookie * $firefoxmarionettecookie * $verbosity Return value: * $ret : a cookie object on success or undef on failure. count_cookies my $ret = count_cookies($w, $skip_discard, $verbosity); Arguments: * $w * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. count_httpcookies my $ret = count_httpcookies($httpcookies, $skip_discard, $verbosity); Arguments: * $httpcookies * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. setcookie2httpcookies_set_cookie_array my $ret = setcookie2httpcookies_set_cookie_array($setcookie, $verbosity); Arguments: * $setcookie * $verbosity Return value: * $ret : a cookie object on success or undef on failure. setcookie2hash my $ret = setcookie2hash($setcookie, $verbosity); Arguments: * $setcookie * $verbosity Return value: * $ret : a cookie object on success or undef on failure. setcookies2httpcookies my $ret = setcookies2httpcookies($setcookies, $httpcookies, $verbosity); Arguments: * $setcookies * $httpcookies * $verbosity Return value: * $ret : a cookie object on success or undef on failure. firefoxmarionettecookies2setcookies my $ret = firefoxmarionettecookies2setcookies($firefoxmarionettecookies, $setcookies, $skip_discard, $verbosity); Arguments: * $firefoxmarionettecookies * $setcookies * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. firefoxmarionettecookies2httpcookiejar my $ret = firefoxmarionettecookies2httpcookiejar($firefoxmarionettecookies, $httpcookiejar, $skip_discard, $verbosity); Arguments: * $firefoxmarionettecookies * $httpcookiejar * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. httpcookiejar2httpcookies my $ret = httpcookiejar2httpcookies($httpcookiejar, $httpcookies, $skip_discard, $verbosity); Arguments: * $httpcookiejar * $httpcookies * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. firefoxmarionettecookies2httpcookies my $ret = firefoxmarionettecookies2httpcookies($firefoxmarionettecookies, $httpcookies, $skip_discard, $verbosity); Arguments: * $firefoxmarionettecookies * $httpcookies * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. httpcookies2setcookies my $ret = httpcookies2setcookies($httpcookies, $setcookies, $skip_discard, $verbosity); Arguments: * $httpcookies * $setcookies * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. httpcookiejar2setcookies my $ret = httpcookiejar2setcookies($httpcookiejar, $setcookies, $verbosity); Arguments: * $httpcookiejar * $setcookies * $verbosity Return value: * $ret : a cookie object on success or undef on failure. httpcookiejar2firefoxmarionettecookies my $ret = httpcookiejar2firefoxmarionettecookies($httpcookiejar, $firefoxmarionettecookies, $verbosity); Arguments: * $httpcookiejar * $firefoxmarionettecookies * $verbosity Return value: * $ret : a cookie object on success or undef on failure. as_string_cookies my $ret = as_string_cookies($w, $skip_discard, $verbosity); Arguments: * $w * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. as_string_firefoxmarionettecookies my $ret = as_string_firefoxmarionettecookies($w, $skip_discard, $verbosity); Arguments: * $w * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. as_string_firefoxmarionettecookie my $ret = as_string_firefoxmarionettecookie($w, $skip_discard, $verbosity); Arguments: * $w * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. as_string_httpcookies my $ret = as_string_httpcookies($httpcookies, $skip_discard, $verbosity); Arguments: * $httpcookies * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. cookies_are_equal my $ret = cookies_are_equal($obj1, $obj2, $skip_discard, $verbosity); Arguments: * $obj1 * $obj2 * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. cookies_are_equal_setcookies my $ret = cookies_are_equal_setcookies($obj1, $obj2, $skip_discard, $verbosity); Arguments: * $obj1 * $obj2 * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. cookies_are_equal_firefoxmarionettecookie my $ret = cookies_are_equal_firefoxmarionettecookie($obj1, $obj2, $skip_discard, $verbosity); Arguments: * $obj1 * $obj2 * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. cookies_are_equal_firefoxmarionettecookies my $ret = cookies_are_equal_firefoxmarionettecookies($obj1, $obj2, $skip_discard, $verbosity); Arguments: * $obj1 * $obj2 * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. cookies_are_equal_httpcookies my $ret = cookies_are_equal_httpcookies($obj1, $obj2, $skip_discard, $verbosity); Arguments: * $obj1 * $obj2 * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. cookies_are_equal_httpcookies_bad my $ret = cookies_are_equal_httpcookies_bad($obj1, $obj2, $skip_discard, $verbosity); Arguments: * $obj1 * $obj2 * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. cookies_are_equal_httpcookiejar my $ret = cookies_are_equal_httpcookiejar($obj1, $obj2, $skip_discard, $verbosity); Arguments: * $obj1 * $obj2 * $skip_discard * $verbosity Return value: * $ret : a cookie object on success or undef on failure. CAVEATS Converting between Perl Cookie classes is a futile task. Those who implemented a second Perl Cookie class are doing a dis-service to the community. This module can fail at any time. If it does, please provide the details AND the remedy. AUTHOR Andreas Hadjiprocopis, BUGS Please report any bugs or feature requests to bug-cookies-roundtrip at rt.cpan.org, or through the web interface at https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Cookies-Roundtrip. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. SUPPORT You can find documentation for this module with the perldoc command. perldoc Cookies::Roundtrip You can also look for information at: * RT: CPAN's request tracker (report bugs here) https://rt.cpan.org/NoAuth/Bugs.html?Dist=Cookies-Roundtrip * CPAN Ratings https://cpanratings.perl.org/d/Cookies-Roundtrip * Search CPAN https://metacpan.org/release/Cookies-Roundtrip ACKNOWLEDGEMENTS LICENSE AND COPYRIGHT This software is Copyright (c) 2025 by Andreas Hadjiprocopis. This is free software, licensed under: The Artistic License 2.0 (GPL Compatible)