/usr/share/perl5/XML/Smart/XPath.pm is in libxml-smart-perl 1.78-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | #############################################################################
## Name: XPath.pm
## Purpose: XML::Smart::XPath - Compatibility with XPath (through XML::XPath).
## Author: Graciliano M. P.
## Modified by: Harish Madabushi
## Created: 01/10/2003
## RCS-ID:
## Copyright: (c) 2003 Graciliano M. P.
## Licence: This program is free software; you can redistribute it and/or
## modify it under the same terms as Perl itself
#############################################################################
### MAINTAINER NOTE: Contains MEMLeak ####
package XML::Smart::XPath ;
use 5.006 ;
use strict ;
use warnings ;
require Exporter ;
use XML::Smart::Shared qw( _unset_sig_warn _reset_sig_warn ) ;
our ($VERSION , @ISA) ;
$VERSION = '0.05' ;
@ISA = qw(Exporter) ;
our @EXPORT = qw(xpath XPath xpath_pointer XPath_pointer) ;
our @EXPORT_OK = @EXPORT ;
my $load_XPath ;
##############
# LOAD_XPATH #
##############
sub load_XPath {
return $load_XPath if $load_XPath ;
eval(q`use XML::XPath ;`);
if ($@) {
warn("Error loading module XML::XPath! Can't use XPath with XML::Smart! Please install XML::XPath.");
$load_XPath = undef ;
}
else {
$load_XPath = 1 ;
$XML::XPath::SafeMode = 1 ;
}
return $load_XPath ;
}
#########
# XPATH #
#########
sub XPath { &xpath } ;
sub xpath {
my $this = shift ;
load_XPath() ;
my $xpath ;
if ( $$this->{XPATH} ) { $xpath = ${$$this->{XPATH}} ;}
if (!$xpath){
$xpath = XML::XPath->new(
xml => $this->data(nospace => 1 , noheader => 1)
) ;
$$this->{XPATH} = \$xpath ;
}
if ( !@_ ) { return $xpath ;}
return ;
}
#################
# XPATH_POINTER #
#################
sub XPath_pointer { &xpath_pointer } ;
sub xpath_pointer {
my $this = shift ;
load_XPath() ;
my $xpath = XML::XPath->new(xml => $this->data_pointer(nospace => 1 , noheader => 1)) ;
if ( !@_ ) { return $xpath ;}
return ;
}
#######
# END #
#######
1;
|