xs
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 77
JSON::XS 1.11
JSON::XS implements JSON (http://www.json.org) for Perl. more>>
JSON::XS implements JSON (http://www.json.org) for Perl. Unlike other modules, its primary goal is to encode to syntactically correct JSON and flag invalid JSON while decoding.
It ensures round-trip integrity of datatypes while being intuitive to use. Currently being the fastest of the JSON encoders available for Perl, it supports a variety of format options, such as single-line, ASCII-only or pretty-printed and can be tuned for speed or memory usage.
The project comes with a wealth of documentation describing usage and implementation details.
<<lessIt ensures round-trip integrity of datatypes while being intuitive to use. Currently being the fastest of the JSON encoders available for Perl, it supports a variety of format options, such as single-line, ASCII-only or pretty-printed and can be tuned for speed or memory usage.
The project comes with a wealth of documentation describing usage and implementation details.
Download (0.030MB)
Added: 2007-04-11 License: GPL (GNU General Public License) Price:
929 downloads
TUTO XS LiveCD
UTUTO XS is a desktop and extensible solution based totally in Free/Libre software. more>>
UTUTO XS is a desktop and extensible solution based totally in Free/Libre software. It only includes (and will ever do) free/libre and open source software. But it let users the possibility to install other programs.
UTUTO XS is free/libre software, so their users have a high quality desktop system, with legal rights to use, copy, distribute and modify it according to their needs. UTUTO Xs includes the main common-use software for home, developers, companies, organizations, government users.
<<lessUTUTO XS is free/libre software, so their users have a high quality desktop system, with legal rights to use, copy, distribute and modify it according to their needs. UTUTO Xs includes the main common-use software for home, developers, companies, organizations, government users.
Download (700MB)
Added: 2005-09-14 License: GPL (GNU General Public License) Price:
1502 downloads
idl2xs_c 0.53
idl2xs_c is an IDL compiler to extension interface between Perl and C code. more>>
idl2xs_c is an IDL compiler to extension interface between Perl and C code.
SYNOPSIS
idl2xs_c [options] spec.idl
OPTIONS
All options are forwarded to C preprocessor, except -h -i -J -v -x.
With the GNU C Compatible Compiler Processor, useful options are :
-D name
-D name=definition
-I directory
-I-
-nostdinc
Specific options :
-h
Display help.
-i directory
Specify a path for import (only for version 3.0).
-J directory
Specify a path for Perl package importation (use package;).
-v
Display version.
-x
Enable export (only for version 3.0).
idl2xs_c is an alternative to h2xs and XS language when an IDL interface is available.
idl2xs_c parses the given input file (IDL) and generates :
a Perl stub spec.pm
(deals with CDR serialization, and autoload)
a C stub spec.c
(deals with Perl API)
a C stub cdr_spec.c
(deals with CDR serialization)
a include file spec.h
(following the language C mapping rules)
a C skeleton skel_spec.c (with automatic merge)
Makefile.PL
Makefile
(from Makefile.PL)
test.pl
MANIFEST
Changes
The files Makefile, Makefile.PL, Changes, MANIFEST, test.pl and spec.c are generated only if spec.idl contains operation or attribute.
idl2xs_c is a Perl OO application what uses the visitor design pattern. The parser is generated by Parse::Yapp.
idl2xs_c needs a cpp executable.
idl2xs_c needs CORBA::IDL, CORBA::C and CORBA::Perl modules.
CORBA Specifications, including (IDL : Interface Language Definition and CDR : Common Data Representation) and C Language Mapping are available on http://www.omg.org/.
CORBA mapping for Perl [mapping.pod - Draft 1, 7 October 1999] comes with the package CORBA::MICO or CORBA::ORBit.
Exceptions are implemented using the Error module.
<<lessSYNOPSIS
idl2xs_c [options] spec.idl
OPTIONS
All options are forwarded to C preprocessor, except -h -i -J -v -x.
With the GNU C Compatible Compiler Processor, useful options are :
-D name
-D name=definition
-I directory
-I-
-nostdinc
Specific options :
-h
Display help.
-i directory
Specify a path for import (only for version 3.0).
-J directory
Specify a path for Perl package importation (use package;).
-v
Display version.
-x
Enable export (only for version 3.0).
idl2xs_c is an alternative to h2xs and XS language when an IDL interface is available.
idl2xs_c parses the given input file (IDL) and generates :
a Perl stub spec.pm
(deals with CDR serialization, and autoload)
a C stub spec.c
(deals with Perl API)
a C stub cdr_spec.c
(deals with CDR serialization)
a include file spec.h
(following the language C mapping rules)
a C skeleton skel_spec.c (with automatic merge)
Makefile.PL
Makefile
(from Makefile.PL)
test.pl
MANIFEST
Changes
The files Makefile, Makefile.PL, Changes, MANIFEST, test.pl and spec.c are generated only if spec.idl contains operation or attribute.
idl2xs_c is a Perl OO application what uses the visitor design pattern. The parser is generated by Parse::Yapp.
idl2xs_c needs a cpp executable.
idl2xs_c needs CORBA::IDL, CORBA::C and CORBA::Perl modules.
CORBA Specifications, including (IDL : Interface Language Definition and CDR : Common Data Representation) and C Language Mapping are available on http://www.omg.org/.
CORBA mapping for Perl [mapping.pod - Draft 1, 7 October 1999] comes with the package CORBA::MICO or CORBA::ORBit.
Exceptions are implemented using the Error module.
Download (0.016MB)
Added: 2007-05-30 License: Perl Artistic License Price:
877 downloads
Cache::Memcached::XS 0.01
Cache::Memcached::XS is a client library for memcached (memory cache daemon) using libmemcache. more>>
Cache::Memcached::XS is a client library for memcached (memory cache daemon) using libmemcache.
SYNOPSIS
use Cache::Memcached::XS;
$memd = new Cache::Memcached {
servers => [ "10.0.0.15:11211", "10.0.0.15:11212",
"10.0.0.17:11211", [ "10.0.0.17:11211", 3 ] ],
compress_threshold => 10_000,
};
$memd->set_servers($array_ref);
$memd->set_compress_threshold(10_000);
$memd->enable_compress(0);
$memd->set("my_key", "Some value");
$memd->set("object_key", { complex => [ "object", 2, 4 ]});
$val = $memd->get("my_key");
$val = $memd->get("object_key");
if ($val) { print $val->{complex}->[2]; }
$memd->incr("key");
$memd->decr("key");
$memd->incr("key", 2);
This is the Perl API for memcached, a distributed memory cache daemon. More information is available at:
http://www.danga.com/memcached/
This version differs from the original Cache::Memcached perl client in that it uses the libmemcache library and uses quite a lot less CPU.
A few features from the original client are not (yet) supported:
- no_rehash
- debug
- stats
- disconnect_all
Other than this, it should be pretty much a drop-in replacement for the original client.
<<lessSYNOPSIS
use Cache::Memcached::XS;
$memd = new Cache::Memcached {
servers => [ "10.0.0.15:11211", "10.0.0.15:11212",
"10.0.0.17:11211", [ "10.0.0.17:11211", 3 ] ],
compress_threshold => 10_000,
};
$memd->set_servers($array_ref);
$memd->set_compress_threshold(10_000);
$memd->enable_compress(0);
$memd->set("my_key", "Some value");
$memd->set("object_key", { complex => [ "object", 2, 4 ]});
$val = $memd->get("my_key");
$val = $memd->get("object_key");
if ($val) { print $val->{complex}->[2]; }
$memd->incr("key");
$memd->decr("key");
$memd->incr("key", 2);
This is the Perl API for memcached, a distributed memory cache daemon. More information is available at:
http://www.danga.com/memcached/
This version differs from the original Cache::Memcached perl client in that it uses the libmemcache library and uses quite a lot less CPU.
A few features from the original client are not (yet) supported:
- no_rehash
- debug
- stats
- disconnect_all
Other than this, it should be pretty much a drop-in replacement for the original client.
Download (0.034MB)
Added: 2007-05-28 License: Perl Artistic License Price:
879 downloads
POE::XS::Queue::Array 0.003
POE::XS::Queue::Array is an XS implementation of POE::Queue::Array. more>>
POE::XS::Queue::Array is an XS implementation of POE::Queue::Array.
This class is an implementation of the abstract POE::Queue interface. It implements a priority queue using C, with an XS interface supplied.
The current implementation could use some optimization, especially for large queues.
Please see the POE::Queue documentation, which explains this ones functions, features, and behavior.
The following extra methods are added beyond POE::Queue::Array:
dump
Dumps the internal structure of the queue to stderr.
verify
Does limited verification of the structure of the queue. If the verification fails then a message is sent to stderr and the queue is dumped as with the dump() method, and your program will exit.
<<lessThis class is an implementation of the abstract POE::Queue interface. It implements a priority queue using C, with an XS interface supplied.
The current implementation could use some optimization, especially for large queues.
Please see the POE::Queue documentation, which explains this ones functions, features, and behavior.
The following extra methods are added beyond POE::Queue::Array:
dump
Dumps the internal structure of the queue to stderr.
verify
Does limited verification of the structure of the queue. If the verification fails then a message is sent to stderr and the queue is dumped as with the dump() method, and your program will exit.
Download (0.015MB)
Added: 2006-10-20 License: Perl Artistic License Price:
1099 downloads
Inline::CPP2XS 0.08
Inline::CPP2XS is capable of parsing correctly only that CPP code that is suitable for inclusion in an Inline::CPP script. more>>
The Inline::CPP2XS Perl module is deprecated. Please install the latest version of InlineX::CPP2XS.
SYNOPSIS
use Inline::CPP2XS qw(cpp2xs);
my $module_name = MY::XS_MOD;
my $package_name = MY::XS_MOD;
# $build_dir is an optional third arg
my $build_dir = /some/where/else;
# $config_opts is an optional fourth arg (hash reference)
my $config_opts = {AUTOWRAP => 1,
AUTO_INCLUDE => my_header.h,
TYPEMAPS => [my_typemap],
INC => -Imy/includes/dir,
};
# Create /some/where/else/XS_MOD.xs from ./src/XS_MOD.cpp
# Will also create the typemap file /some/where/else/CPP.map
# if that file is going to be needed to build the module:
cpp2xs($module_name, $package_name, $build_dir);
# Or create XS_MOD.xs (and CPP.map, if needed) in the cwd:
cpp2xs($module_name, $package_name);
The optional fourth arg (a reference to a hash) is to enable the writing of XS files using Inline::CPPs autowrap capability. It currently only accommodates 4 hash keys - AUTOWRAP, INC, AUTO_INCLUDE, and TYPEMAPS - though other keys may be added in in the future to accommodate additional functionality.
# Create XS_MOD.xs in the cwd, using the AUTOWRAP feature:
cpp2xs($module_name, $package_name, ., $config_opts);
Dont feed an actual Inline::CPP script to this module - it wont be able to parse it. It is capable of parsing correctly only that CPP code that is suitable for inclusion in an Inline::CPP script.
For example, here is a simple Inline::CPP script:
use warnings;
use Inline CPP => Config =>
BUILD_NOISY => 1,
CLEAN_AFTER_BUILD => 0;
use Inline CPP =><<less
SYNOPSIS
use Inline::CPP2XS qw(cpp2xs);
my $module_name = MY::XS_MOD;
my $package_name = MY::XS_MOD;
# $build_dir is an optional third arg
my $build_dir = /some/where/else;
# $config_opts is an optional fourth arg (hash reference)
my $config_opts = {AUTOWRAP => 1,
AUTO_INCLUDE => my_header.h,
TYPEMAPS => [my_typemap],
INC => -Imy/includes/dir,
};
# Create /some/where/else/XS_MOD.xs from ./src/XS_MOD.cpp
# Will also create the typemap file /some/where/else/CPP.map
# if that file is going to be needed to build the module:
cpp2xs($module_name, $package_name, $build_dir);
# Or create XS_MOD.xs (and CPP.map, if needed) in the cwd:
cpp2xs($module_name, $package_name);
The optional fourth arg (a reference to a hash) is to enable the writing of XS files using Inline::CPPs autowrap capability. It currently only accommodates 4 hash keys - AUTOWRAP, INC, AUTO_INCLUDE, and TYPEMAPS - though other keys may be added in in the future to accommodate additional functionality.
# Create XS_MOD.xs in the cwd, using the AUTOWRAP feature:
cpp2xs($module_name, $package_name, ., $config_opts);
Dont feed an actual Inline::CPP script to this module - it wont be able to parse it. It is capable of parsing correctly only that CPP code that is suitable for inclusion in an Inline::CPP script.
For example, here is a simple Inline::CPP script:
use warnings;
use Inline CPP => Config =>
BUILD_NOISY => 1,
CLEAN_AFTER_BUILD => 0;
use Inline CPP =><<less
Download (0.007MB)
Added: 2007-05-30 License: Perl Artistic License Price:
877 downloads
ExtUtils::ParseXS 2.18
ExtUtils::ParseXS is a Perl module that converts Perl XS code into C code. more>>
ExtUtils::ParseXS is a Perl module that converts Perl XS code into C code.
SYNOPSIS
use ExtUtils::ParseXS qw(process_file);
process_file( filename => foo.xs );
process_file( filename => foo.xs,
output => bar.c,
C++ => 1,
typemap => path/to/typemap,
hiertype => 1,
except => 1,
prototypes => 1,
versioncheck => 1,
linenumbers => 1,
optimize => 1,
prototypes => 1,
);
ExtUtils::ParseXS will compile XS code into C code by embedding the constructs necessary to let C functions manipulate Perl values and creates the glue necessary to let Perl access those functions. The compiler uses typemaps to determine how to map C function parameters and variables to Perl values.
The compiler will search for typemap files called typemap. It will use the following search path to find default typemaps, with the rightmost typemap taking precedence.
../../../typemap:../../typemap:../typemap:typemap
EXPORT
None by default. process_file() may be exported upon request.
FUNCTIONS
process_xs()
This function processes an XS file and sends output to a C file. Named parameters control how the processing is done. The following parameters are accepted:
C++
Adds extern "C" to the C code. Default is false.
hiertype
Retains :: in type names so that C++ hierachical types can be mapped. Default is false.
except
Adds exception handling stubs to the C code. Default is false.
typemap
Indicates that a user-supplied typemap should take precedence over the default typemaps. A single typemap may be specified as a string, or multiple typemaps can be specified in an array reference, with the last typemap having the highest precedence.
prototypes
Generates prototype code for all xsubs. Default is false.
versioncheck
Makes sure at run time that the object file (derived from the .xs file) and the .pm files have the same version number. Default is true.
linenumbers
Adds #line directives to the C output so error messages will look like they came from the original XS file. Default is true.
optimize
Enables certain optimizations. The only optimization that is currently affected is the use of targets by the output C code (see perlguts). Not optimizing may significantly slow down the generated code, but this is the way xsubpp of 5.005 and earlier operated. Default is to optimize.
inout
Enable recognition of IN, OUT_LIST and INOUT_LIST declarations. Default is true.
argtypes
Enable recognition of ANSI-like descriptions of function signature. Default is true.
s
I have no clue what this does. Strips function prefixes?
errors()
This function returns the number of [a certain kind of] errors encountered during processing of the XS file.
<<lessSYNOPSIS
use ExtUtils::ParseXS qw(process_file);
process_file( filename => foo.xs );
process_file( filename => foo.xs,
output => bar.c,
C++ => 1,
typemap => path/to/typemap,
hiertype => 1,
except => 1,
prototypes => 1,
versioncheck => 1,
linenumbers => 1,
optimize => 1,
prototypes => 1,
);
ExtUtils::ParseXS will compile XS code into C code by embedding the constructs necessary to let C functions manipulate Perl values and creates the glue necessary to let Perl access those functions. The compiler uses typemaps to determine how to map C function parameters and variables to Perl values.
The compiler will search for typemap files called typemap. It will use the following search path to find default typemaps, with the rightmost typemap taking precedence.
../../../typemap:../../typemap:../typemap:typemap
EXPORT
None by default. process_file() may be exported upon request.
FUNCTIONS
process_xs()
This function processes an XS file and sends output to a C file. Named parameters control how the processing is done. The following parameters are accepted:
C++
Adds extern "C" to the C code. Default is false.
hiertype
Retains :: in type names so that C++ hierachical types can be mapped. Default is false.
except
Adds exception handling stubs to the C code. Default is false.
typemap
Indicates that a user-supplied typemap should take precedence over the default typemaps. A single typemap may be specified as a string, or multiple typemaps can be specified in an array reference, with the last typemap having the highest precedence.
prototypes
Generates prototype code for all xsubs. Default is false.
versioncheck
Makes sure at run time that the object file (derived from the .xs file) and the .pm files have the same version number. Default is true.
linenumbers
Adds #line directives to the C output so error messages will look like they came from the original XS file. Default is true.
optimize
Enables certain optimizations. The only optimization that is currently affected is the use of targets by the output C code (see perlguts). Not optimizing may significantly slow down the generated code, but this is the way xsubpp of 5.005 and earlier operated. Default is to optimize.
inout
Enable recognition of IN, OUT_LIST and INOUT_LIST declarations. Default is true.
argtypes
Enable recognition of ANSI-like descriptions of function signature. Default is true.
s
I have no clue what this does. Strips function prefixes?
errors()
This function returns the number of [a certain kind of] errors encountered during processing of the XS file.
Download (0.025MB)
Added: 2007-05-02 License: Perl Artistic License Price:
905 downloads
Mail::QmailRemoteXS 1.2
Mail::QmailRemoteXS is a lightweight C-code (XS) SMTP send function based on Qmails qmail-remote. more>>
Mail::QmailRemoteXS is a lightweight C-code (XS) SMTP send function based on Qmails qmail-remote.
SYNOPSIS
use Mail::QmailRemoteXS;
$ret = Mail::QmailRemoteXS::mail($to_domain,$from_address,$to_address,$msg,$helo,$net_timeout,$net_timeoutconnect);
This module provides a single function mail that sends an email via SMTP. It uses an XS implementation of Qmails qmail-remote binary written in C so is very lightweight and fast (compared to Net::SMTP).
The difference between Mail::QmailRemote (IKEBE Tomohiro) and Mail::QmailRemoteXS is that the former requires the qmail package to be installed and simply invokes a wrapper around the qmail-remote binary for each send. This module statically links code based on qmail-remote and has no dependencies other that a working resolver.
FUNCTIONS
mail
$ret = Mail::QmailRemoteXS::mail($to_domain,$from_address,$to_address,$msg,$helo,$net_timeout,$net_timeoutconnect);
Send an email message $msg (which includes rfc822 headers) to $to_address from $from_address using $helo as the SMTP HELO greeting. $net_timeoutconnect is for the initial SMTP connection and $net_timeout is for the wait time for SMTP responses.
See Qmails qmail-remote manpage for more information and details on the return value $ret.
<<lessSYNOPSIS
use Mail::QmailRemoteXS;
$ret = Mail::QmailRemoteXS::mail($to_domain,$from_address,$to_address,$msg,$helo,$net_timeout,$net_timeoutconnect);
This module provides a single function mail that sends an email via SMTP. It uses an XS implementation of Qmails qmail-remote binary written in C so is very lightweight and fast (compared to Net::SMTP).
The difference between Mail::QmailRemote (IKEBE Tomohiro) and Mail::QmailRemoteXS is that the former requires the qmail package to be installed and simply invokes a wrapper around the qmail-remote binary for each send. This module statically links code based on qmail-remote and has no dependencies other that a working resolver.
FUNCTIONS
$ret = Mail::QmailRemoteXS::mail($to_domain,$from_address,$to_address,$msg,$helo,$net_timeout,$net_timeoutconnect);
Send an email message $msg (which includes rfc822 headers) to $to_address from $from_address using $helo as the SMTP HELO greeting. $net_timeoutconnect is for the initial SMTP connection and $net_timeout is for the wait time for SMTP responses.
See Qmails qmail-remote manpage for more information and details on the return value $ret.
Download (0.25MB)
Added: 2006-12-18 License: Perl Artistic License Price:
1040 downloads
Crypt::UnixCrypt_XS 0.05
Crypt::UnixCrypt_XS is a perl xs interface for a portable traditional crypt function. more>>
Crypt::UnixCrypt_XS is a perl xs interface for a portable traditional crypt function.
SYNOPSIS
use Crypt::UnixCrypt_XS qw/crypt/;
my $hashed = crypt( $password, $salt );
use Crypt::UnixCrypt_XS qw/crypt_rounds fold_password
base64_to_block block_to_base64
base64_to_int24 int24_to_base64
base64_to_int12 int12_to_base64/;
$block = crypt_rounds( $password, $nrounds, $saltnum, $block );
$password = fold_password( $password );
$block = base64_to_block( $base64 );
$base64 = block_to_base64( $block );
$saltnum = base64_to_int24( $base64 );
$base64 = int24_to_base64( $saltnum );
$saltnum = base64_to_int12( $base64 );
$base64 = int12_to_base64( $saltnum );
This module implements the DES-based Unix crypt function. For those who need to construct non-standard variants of crypt, the various building blocks used in crypt are also supplied separately.
<<lessSYNOPSIS
use Crypt::UnixCrypt_XS qw/crypt/;
my $hashed = crypt( $password, $salt );
use Crypt::UnixCrypt_XS qw/crypt_rounds fold_password
base64_to_block block_to_base64
base64_to_int24 int24_to_base64
base64_to_int12 int12_to_base64/;
$block = crypt_rounds( $password, $nrounds, $saltnum, $block );
$password = fold_password( $password );
$block = base64_to_block( $base64 );
$base64 = block_to_base64( $block );
$saltnum = base64_to_int24( $base64 );
$base64 = int24_to_base64( $saltnum );
$saltnum = base64_to_int12( $base64 );
$base64 = int12_to_base64( $saltnum );
This module implements the DES-based Unix crypt function. For those who need to construct non-standard variants of crypt, the various building blocks used in crypt are also supplied separately.
Download (0.027MB)
Added: 2006-10-04 License: Perl Artistic License Price:
1115 downloads
Module::Starter::XSimple 0.0.1
Module::Starter::XSimple is a Perl module to create XS modules with Module::Starter. more>>
Module::Starter::XSimple is a Perl module to create XS modules with Module::Starter.
Replacement class for Module::Starter::Simple.
Can be used in two ways:
Using the commandline
Pass as an override class to the module-starter script:
module-starter --module=[modulename]
--class=Module::Starter::XSimple
Using a config file
Create a .module-starter/config file with at least the following:
author: your name
email: your_address@example.com
builder: Module::Build
plugins: Module::Starter::XSimple
At present, M::S::XSimple only supports Module::Build, because the XS and associated files locations are different between Module::Build and ExtUtils::ModuleMaker.
All methods are replacements or additions to the methods provided by Module::Starter::Simple.
Build_PL_guts
Creates the custom Build.PL file for the generated module.
create_modules
Creates the .PM, .XS, and typemap files for each requested module. Calls the following three subs:
module_guts
Generates the .PM file from skeleton code.
xsmodule_guts
Generates the .XS file from skeleton code.
typemap_guts
Generates the typemap file from skeleton code.
module_path_create
Replacement sub for M::S::Simple routine; permits the caller to set the file extension when creating non .PM files.
rtname
Generate the special e-mail address to use when reporting bugs via rt.cpan.org.
t_guts
Add additional test files.
<<lessReplacement class for Module::Starter::Simple.
Can be used in two ways:
Using the commandline
Pass as an override class to the module-starter script:
module-starter --module=[modulename]
--class=Module::Starter::XSimple
Using a config file
Create a .module-starter/config file with at least the following:
author: your name
email: your_address@example.com
builder: Module::Build
plugins: Module::Starter::XSimple
At present, M::S::XSimple only supports Module::Build, because the XS and associated files locations are different between Module::Build and ExtUtils::ModuleMaker.
All methods are replacements or additions to the methods provided by Module::Starter::Simple.
Build_PL_guts
Creates the custom Build.PL file for the generated module.
create_modules
Creates the .PM, .XS, and typemap files for each requested module. Calls the following three subs:
module_guts
Generates the .PM file from skeleton code.
xsmodule_guts
Generates the .XS file from skeleton code.
typemap_guts
Generates the typemap file from skeleton code.
module_path_create
Replacement sub for M::S::Simple routine; permits the caller to set the file extension when creating non .PM files.
rtname
Generate the special e-mail address to use when reporting bugs via rt.cpan.org.
t_guts
Add additional test files.
Download (0.006MB)
Added: 2007-01-24 License: Perl Artistic License Price:
1003 downloads
XML::Simple 2.14
XML::Simple is a easy API to maintain XML (esp config files). more>>
XML::Simple is a easy API to maintain XML (esp config files).
SYNOPSIS
use XML::Simple;
my $ref = XMLin([< xml file or string >] [, < options >]);
my $xml = XMLout($hashref [, < options >]);
Or the object oriented way:
require XML::Simple;
my $xs = new XML::Simple(options);
my $ref = $xs->XMLin([< xml file or string >] [, < options >]);
my $xml = $xs->XMLout($hashref [, < options >]);
(or see "SAX SUPPORT" for the SAX way).
To catch common errors:
use XML::Simple qw(:strict);
<<lessSYNOPSIS
use XML::Simple;
my $ref = XMLin([< xml file or string >] [, < options >]);
my $xml = XMLout($hashref [, < options >]);
Or the object oriented way:
require XML::Simple;
my $xs = new XML::Simple(options);
my $ref = $xs->XMLin([< xml file or string >] [, < options >]);
my $xml = $xs->XMLout($hashref [, < options >]);
(or see "SAX SUPPORT" for the SAX way).
To catch common errors:
use XML::Simple qw(:strict);
Download (0.065MB)
Added: 2006-09-06 License: Perl Artistic License Price:
1151 downloads
XML::SAX::Intro 0.14
XML::SAX::Intro is an Introduction to SAX Parsing with Perl. more>>
XML::SAX::Intro is an Introduction to SAX Parsing with Perl.
XML::SAX is a new way to work with XML Parsers in Perl. In this article well discuss why you should be using SAX, why you should be using XML::SAX, and well see some of the finer implementation details. The text below assumes some familiarity with callback, or push based parsing, but if you are unfamiliar with these techniques then a good place to start is Kip Hamptons excellent series of articles on XML.com.
Replacing XML::Parser
The de-facto way of parsing XML under perl is to use Larry Wall and Clark Coopers XML::Parser. This module is a Perl and XS wrapper around the expat XML parser library by James Clark. It has been a hugely successful project, but suffers from a couple of rather major flaws. Firstly it is a proprietary API, designed before the SAX API was conceived, which means that it is not easily replaceable by other streaming parsers. Secondly its callbacks are subrefs. This doesnt sound like much of an issue, but unfortunately leads to code like:
sub handle_start {
my ($e, $el, %attrs) = @_;
if ($el eq foo) {
$e->{inside_foo}++; # BAD! $e is an XML::Parser::Expat object.
}
}
As you can see, were using the $e object to hold our state information, which is a bad idea because we dont own that object - we didnt create it. Its an internal object of XML::Parser, that happens to be a hashref. We could all too easily overwrite XML::Parser internal state variables by using this, or Clark could change it to an array ref (not that he would, because it would break so much code, but he could).
The only way currently with XML::Parser to safely maintain state is to use a closure:
my $state = MyState->new();
$parser->setHandlers(Start => sub { handle_start($state, @_) });
This closure traps the $state variable, which now gets passed as the first parameter to your callback. Unfortunately very few people use this technique, as it is not documented in the XML::Parser POD files.
Another reason you might not want to use XML::Parser is because you need some feature that it doesnt provide (such as validation), or you might need to use a library that doesnt use expat, due to it not being installed on your system, or due to having a restrictive ISP. Using SAX allows you to work around these restrictions.
<<lessXML::SAX is a new way to work with XML Parsers in Perl. In this article well discuss why you should be using SAX, why you should be using XML::SAX, and well see some of the finer implementation details. The text below assumes some familiarity with callback, or push based parsing, but if you are unfamiliar with these techniques then a good place to start is Kip Hamptons excellent series of articles on XML.com.
Replacing XML::Parser
The de-facto way of parsing XML under perl is to use Larry Wall and Clark Coopers XML::Parser. This module is a Perl and XS wrapper around the expat XML parser library by James Clark. It has been a hugely successful project, but suffers from a couple of rather major flaws. Firstly it is a proprietary API, designed before the SAX API was conceived, which means that it is not easily replaceable by other streaming parsers. Secondly its callbacks are subrefs. This doesnt sound like much of an issue, but unfortunately leads to code like:
sub handle_start {
my ($e, $el, %attrs) = @_;
if ($el eq foo) {
$e->{inside_foo}++; # BAD! $e is an XML::Parser::Expat object.
}
}
As you can see, were using the $e object to hold our state information, which is a bad idea because we dont own that object - we didnt create it. Its an internal object of XML::Parser, that happens to be a hashref. We could all too easily overwrite XML::Parser internal state variables by using this, or Clark could change it to an array ref (not that he would, because it would break so much code, but he could).
The only way currently with XML::Parser to safely maintain state is to use a closure:
my $state = MyState->new();
$parser->setHandlers(Start => sub { handle_start($state, @_) });
This closure traps the $state variable, which now gets passed as the first parameter to your callback. Unfortunately very few people use this technique, as it is not documented in the XML::Parser POD files.
Another reason you might not want to use XML::Parser is because you need some feature that it doesnt provide (such as validation), or you might need to use a library that doesnt use expat, due to it not being installed on your system, or due to having a restrictive ISP. Using SAX allows you to work around these restrictions.
Download (0.057MB)
Added: 2006-09-12 License: Perl Artistic License Price:
1137 downloads
Linux DiskTool 1.6.4-1
Linux DiskTool is a small, full-featured file manager for the Linux console or an xterm-style terminal. more>>
Linux DiskTool project is a small, full-featured file manager for the Linux console or an xterm-style terminal.
Installation:
You need to be root to install this package. That is because it is considered a system file, and will use some of the system directories to install the docs, man pages, and system procedures.
If you have an earlier version of dt installed, you should delete the old dt.doc file and directory from the /usr/share/doc path. the directory will be named dt-x.x.x where the xs are the version number of the old dt installation.
All other dt files will be overwritten by the install script.
Simply type ./install in the directory that you unpacked these files in to start the install script. When finished, only the original tar.gz package will remain.
The script will delete the files that were unpacked, but it WILL NOT delete anything else in the directory.
Type man dt for the DiskTool manual and contact information. Type man ale for the editor manual and more information.
<<lessInstallation:
You need to be root to install this package. That is because it is considered a system file, and will use some of the system directories to install the docs, man pages, and system procedures.
If you have an earlier version of dt installed, you should delete the old dt.doc file and directory from the /usr/share/doc path. the directory will be named dt-x.x.x where the xs are the version number of the old dt installation.
All other dt files will be overwritten by the install script.
Simply type ./install in the directory that you unpacked these files in to start the install script. When finished, only the original tar.gz package will remain.
The script will delete the files that were unpacked, but it WILL NOT delete anything else in the directory.
Type man dt for the DiskTool manual and contact information. Type man ale for the editor manual and more information.
Download (0.17MB)
Added: 2007-07-23 License: Freeware Price:
825 downloads
LedaX 0.3-1
LedaX is ment to be an EDA including a Library Editor, Schematic Capture and PCB Editor. more>>
LedaX is ment to be an EDA including a Library Editor, Schematic Capture and PCB Editor.
LedaX will consist of a minimum of 3 applications, as mentioned above. There has been a lot of talk about having one application for all, but as I see it, why not make use of Xs ability to have more than one desktop.
We might make plugins for autoplacement and auto arrangement for the PCB editor, but again this is for later plans.
We WILL try to make it work with as many application around for Linux. I.e. ktechlab, gEDA etc.
The storage for the system is a MySQL database. This means that several people can work on one project at a time.
Enhancements:
- Lots and lots of cleanup done by Alain.
- Also a lot of functinality completion and bugfixes done by Alain.
<<lessLedaX will consist of a minimum of 3 applications, as mentioned above. There has been a lot of talk about having one application for all, but as I see it, why not make use of Xs ability to have more than one desktop.
We might make plugins for autoplacement and auto arrangement for the PCB editor, but again this is for later plans.
We WILL try to make it work with as many application around for Linux. I.e. ktechlab, gEDA etc.
The storage for the system is a MySQL database. This means that several people can work on one project at a time.
Enhancements:
- Lots and lots of cleanup done by Alain.
- Also a lot of functinality completion and bugfixes done by Alain.
Download (0.27MB)
Added: 2006-10-15 License: GPL (GNU General Public License) Price:
645 downloads
Mail::Box::Parser::C 3.006
Mail::Box::Parser::C is a Perl module that can parse folders for MailBox with C routines. more>>
Mail::Box::Parser::C is a Perl module that can parse folders for MailBox with C routines.
This is an optional module for MailBox, and will (once installed) automatically be used by MailBox to parse e-mail message content when the message is supplied as file-handle. In all other cases, MailBox will use Mail::Box::Parser::Perl.
Mail::Box::Parser::C - reading messages from file using C (XS)
SYNOPSIS
The Mail::Box::Parser::C implements parsing of messages in ANSI C, using Perls XS extension facility.
<<lessThis is an optional module for MailBox, and will (once installed) automatically be used by MailBox to parse e-mail message content when the message is supplied as file-handle. In all other cases, MailBox will use Mail::Box::Parser::Perl.
Mail::Box::Parser::C - reading messages from file using C (XS)
SYNOPSIS
The Mail::Box::Parser::C implements parsing of messages in ANSI C, using Perls XS extension facility.
Download (0.015MB)
Added: 2006-07-06 License: Perl Artistic License Price:
1205 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above xs search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed