Main > Free Download Search >

Free sans software for linux

sans

Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 22
CCSAT 1.0

CCSAT 1.0


CCSAT provides an automated configuration security audit tool for Cisco routers and switches. more>>
CCSAT provides an automated configuration security audit tool for Cisco routers and switches.

CCSAT (Cisco Configuration Security Auditing Tool) is a tool for automated auditing of configuration security for large numbers of Cisco routers and switches.

The tool is based upon industry best practices, including Cisco, NSA, and SANS security guides and recommendations.

It is flexible and can report details down to individual device interfaces, lines, ACLs, and ASs, etc.

This tool has been tested and used successfully on FreeBSD, Solaris 8, and Linux, and should work on all major UNIX platforms (POSIX.2).

HOW-TO:

1) To start, have this script (ccsat) in your working directory /root/Desktop;
2) Within that directory, create subdirectories /root/Desktop/config and /root/Desktop/report;
3) Put config files in /root/Desktop/config and ensure same file extension (default .txt);
4) If none, then add file extension (commands provided here);
5) Run ./ccsat 12.3 (assuming 12.3 is the latest IOS);
6) The main report will be /root/Desktop/report/audit-results.

<<less
Download (0.032MB)
Added: 2007-03-12 License: Freeware Price:
957 downloads
DejaVu fonts 2.19

DejaVu fonts 2.19


The DejaVu fonts are a font family based on the Bitstream Vera Fonts. more>>
The DejaVu fonts are a font family based on the Bitstream Vera Fonts release 1.10 (see the list of other Bitstream Vera derivatives or Unicode Font Guide).
DejaVu fonts purpose is to provide a wider range of characters (see Current status page for more information) while maintaining the original look and feel through the process of collaborative development (see Authors).
The family is available as TrueType fonts and also as third-party packages for various operating systems including handhelds.
Enhancements:
- fixed misplaced symbols (U+2325,2326) in Sans Oblique (by John Karp)
- added Mark to Base anchors: cedilla for combining cedilla and above-legacy for stacking above precomposed glyphs (just a,e,i,o,u with macron for now) in Sans (by Denis Jacquerye).
- added contextual substitution for Case and Dotless forms in all Sans variants (by Denis Jacquerye).
- renamed ccmp lookups for RTL and Basic (LGC, etc.) (by Denis Jacquerye)
- added anchor cedilla for vowels in Sans. (by Denis Jacquerye)
- extended contextual dotless and case substitutions to handle both below and above diacritics (by Denis Jacquerye)
- renamed Dotless and Case Form GSUB lookups in Sans with meaningful names (by Denis Jacquerye)
<<less
Download (MB)
Added: 2007-08-06 License: Freely Distributable Price:
822 downloads
paps 0.6.8

paps 0.6.8


paps is a text to PostScript converter that works through Pango. more>>
paps is a text to PostScript converter that works through Pango. Its input is a UTF-8 encoded text file and it outputs vectorized PostScript that is quite compressed.

paps may be used for printing any complex script supported by Pango. paps supports landscape and portrait printing as well as multiple columns.

SYNTAX

paps [--landscape] [--columns cl] [--font_scale fs] [--family f] [--rtl]

OPTIONS

--landscape
Landscape output. Default is portrait.
--column cl
Number of columns output. Default is 1.
--fontscale fs
Font scaling. Default is 12.
--family f
Pango ft2 font family. Default is sans.
--rtl
Do rtl layout.
--svg
Output svg. Default is postscript.
<<less
Download (0.41MB)
Added: 2007-04-15 License: LGPL (GNU Lesser General Public License) Price:
922 downloads
Rcss 0.3.1

Rcss 0.3.1


Rcss addresses issue of CSS maintainability more>>
Rcss addresses issue of CSS maintainability. Even a minor change in complex stylesheet usually requires using search-and-replace.
A simple way to fix this flaw is to allow some kind of constant/variable substitution inside CSS. Using Rcss you can achieve that in three ways:
ERB templates
ERB templating is the most flexible solution. It uses standard ERB syntax (the same you can find in rhtml files). ERB allows you to inlude in the CSS values defined in controller. This gives access to database through ActiveRecord and allows database-driven CSS themes.
Strengths
Access to application data (through ActiveRecord)
Flexible Ruby syntax (allowing programmatic CSS)
Weaknesses
Syntax unfamiliar to CSS designers
A bit ugly and sometimes error-prone embedding
Not portable
Example
< % template_color = "#000"
template_background = "#fff"
template_highlight = "#fa3"
% >
body {
color: < %= template_color % >;
background-color: < %= template_background % >;
}
h1 {
color: < %= template_background % >;
background-color: < %= template_highlight % >;
}
Server-side Constants
Server-side Constants were originaly developed by Shaun Inman in PHP. SSC extends CSS syntax in a simple way. SCC is cross-platform and easy to use.
Rcss differs from original implementation in two ways :
Constants may have complex values (including spaces and commas)
Includes are not implemented
Strengths
Simple syntax
SSC-CSS files can be used in both Rails and PHP applications
Weaknesses
Only simple constant substitution
Example
@server constants {
template_color: #000;
template_background: #fff;
template_highlight: #fa3;
// Rcss specific (note spaces and commas)
template_font: "Trebuchet MS", "Bitstream Vera Sans", helvetica, sans-serif;
}
body {
color: template_color;
background-color: template_background;
font-family: template_font;
}
h1 {
color: template_background;
background-color: template_highlight;
font-family: template_font;
}
Enhancements:
- Ruby 1.8.2 is now used for builds, which fixes an invalid GEM problem and allows the software to actually be installed.
<<less
Download (0.008MB)
Added: 2005-10-26 License: MIT/X Consortium License Price:
1458 downloads
SARA 7.0.2c

SARA 7.0.2c


SARA, the Security Auditors Research Assistant is a third generation network security analysis tool. more>>
SARA, the Security Auditors Research Assistant is a third generation network security analysis tool.
Main features:
- Operates under Unix, Linux, MAC OS/X or Windows (through coLinux) OS.
- Supports the FBI/SANS Top 20 Consensus (8 Oct 04).
- Can adapt to many firewalled environments.
- Support remote self scan and API facilities.
- Used for CIS benchmark initiatives
- Plug-in facility for third party apps
- SANS/ISTS Certified
- CVE standards support (20040901)
- Enterprise search module
- Standalone or daemon mode
- Free-use open SATAN oriented license
- Updated twice a month (we try)
- User extension support
- Based on the SATAN model
The first generation assistant, the Security Administrators Tool for Analyzing Networks (SATAN) was developed in early 1995. It became the benchmark for network security analysis for several years. However, few updates were provided and the tool slowly became obsolete in the growing threat environment.
Enhancements:
- Extensive new features, new tests, and new database connectors.
- Many bugfixes and cleanups were made.
<<less
Download (5.5MB)
Added: 2006-10-26 License: Freeware Price:
1094 downloads
Mysql Assistant 1.1.1

Mysql Assistant 1.1.1


Mysql Assistant is a MySQL viewer. more>>
Mysql Assistant is a MySQL viewer. Mysql Assistant requires Ruby-Gtk2 and MySQL/Ruby.

Myassistant is a MySQL viewer using, Ruby, Ruby-Gtk2, MySQL/Ruby and developed on ruby-1.8.4, Mysql-5.0.16, mysql-ruby-2.7, ruby-gtk2-0.14.1.

Currently 3 APIs are provided for MySQL, MySQL/Ruby, Ruby/MySQL, and DBI.
These are 3 different APIs, Please install proper one.

Installation:

untar package anywhere you want.

Security Issue

Myassistant create ".mydb" file which includes "Mysql server name","user name",
"password","database name" with chmod 600 on your home directory.
It could be your security hole, so please notice that.

Fonts

Currently default font is "Sans 12". If you want change it, edit row number 91.

If you have any questions or problems, please let me know.

<<less
Download (0.003MB)
Added: 2006-11-05 License: GPL (GNU General Public License) Price:
1098 downloads
OpenGFS 0.3.0

OpenGFS 0.3.0


OpenGFS is an Open Source version of Sistinas Global File System. more>>
OpenGFS is a clustered filesystem. Its usefulness is thought to be mostly in SANs, but goes well beyond that. It can be used with iSCSI, HyperSCSI, and even firewire.
OpenGFS is undergoing many changes at the moment, we appreciate any help in testing the current development branch. For those less adventurous souls we have our current stable branch (0.2.1).
Main features:
Multiple clients per server
- We dont have to worry about two reads or writes overlapping on the server as the server opens the block file in syncronous mode, and network receives are keep apart with mutexes. Everything else must be handled by higherlevel layers, e.g. the OpenGFS filesystem.
Transparent reconnection.
- The loss of a server does not mean that programs using the device file immediatily get errors. Activity on the device pauses, and remains paused until gnbd gets reconnected to a server, and re-issuse any unfulfilled requests.
Other proccesses Suspending IO.
- Simply, some other process can come and state that the device should stop talking (or trying to talk) to the server. Think `Entering cluster tansition
Notification of change of server.
- Just change the ip and port of where the device looks for a server.
Resumption of service.
- Connect to the server again, and re-issue any requests that havent gotten replies yet.
Currently gnbd has a kernel thread and a TCP socket for each opened block device. If either of these fail, the device is still opened. This is to allow modification of some parameters via ioctl.
There is a short and simple userland program to set the ip and port. Done with those ioctls.
Server ip and port can also be specified at module load. This uses the config option durring insmod. More details in the main.c file.
<<less
Download (0.86MB)
Added: 2005-04-08 License: GPL (GNU General Public License) Price:
1661 downloads
UNH-iSCSI 1.7.0

UNH-iSCSI 1.7.0


UNH-iSCSI provides a Linux-loadable initiator and target modules for the new IETF iSCSI protocol. more>>
UNH-iSCSI provides a Linux-loadable initiator and target modules for the new IETF iSCSI protocol.
The UNH-iSCSI project consists of vendor-independent reference implementations of both a software initiator and a software target emulator for the latest draft (20) of the new IETF protocol for Storage Area Networks (SANs) called iSCSI.
The initiator and target are implemented as independently loadable modules for the Linux kernel, versions 2.4.18 or later.
The software performs extensive checking for conformance to the standard during operation. It supports almost all components of the iSCSI standard, and development is underway to provide support for the remaining components.
Although these modules have been developed and tested together, they operate independently of one another, and do not have to be used together.
That is, the unh-iscsi initiator is capable of connecting with a target from any vendor, and the unh-iscsi target is capable of accepting connections from any vendors initiator.
Install this package
1. mkdir ; tar -zxf
2. cd /unh_iscsi/src/
3. ./Configure
4. make rpm
5. rpm -ivh /usr/src/redhat/RPMS/i386/unh_iscsi-1.7-0X.i386.rpm
Enhancements:
- Tagged top of tree 1.7.0. Updated README to reflect the default build is 2.6.x kernels instead of 2.4.
- Build and posted new tarball for 1.7.0.
- modify the files command files cmd/ini-manage, cmd/ini-conn-up, cmd/ini-lun-up, and cmd/ini-lun-down so that they will adjust automaticallyto the host number assigned by the scsi subsystem to the initiator module when t is loaded.
<<less
Download (0.53MB)
Added: 2007-03-05 License: GPL (GNU General Public License) Price:
965 downloads
HyperWave::CSP 0.03.1

HyperWave::CSP 0.03.1


HyperWave::CSP is a Perl module to communicate with a HyperWave server. more>>


SYNOPSIS

use HyperWave::CSP;

$server = HyperWave::CSP->New("my.hyperwave.server");
$server->quit;

HyperWave is a class implementing a simple HyperWave client in Perl.

CONSTRUCTOR

new ( [ HOST [, PORT [, USERNAME [, PASSWORD [, ENCRYPT [, LANGUAGE ] ] ] ] ] ] )

This is the constructor for a new HyperWave object. HOST is the name of the remote host to which a HyperWave connection is required. If not given the environment variables HWHOST and then HGHOST are checked, and if a host is not found then localhost is used.

PORT is the HyperWave port to connect to, it defaults to the environment variable HWPORT, then HGPORT and then to the standard port 418 if nothing else is found.

USERNAME and PASSWORD are the HyperWave username and password, they default to anonymous. ENCRYPT will eventually allow you to pass the password in in encrypted form rather than plaintext, but is not yet implemented.

LANGUGAE also is not yet used, and defaults to the value of the environment variable HWLANGUAGE and then to English.
The constructor returns the open socket, or undef if an error has been encountered.

METHODS

Unless otherwise stated all methods return either a true or false value, with true meaning that the operation was a success. When a method states that it returns a value, failure will be returned as undef or an empty list.

command_stat ( )

Returns string containing various statistics for the server.

command_ftstat ( )

Returns string containing various statistics for the server.

command_dcstat ( )

Returns string containing various statistics for the server.

command_who ( )

Returns string containing current users for the server.

get_objnum_by_name ( NAME )

Returns object number for the document with NAME as an attribute, or false on error.

get_url ( OBJNUM )

Returns a guess at a URL that might work for the document OBJNUM to be retreived via the HyperWave HTTP interface. Note that it is ONLY a guess. For one thing, it depends on the HyperWave server running a web interface on the default HTTP port.

get_attributes ( OBJNUM )

Returns a string containing the attributes for OBJNUM. The string is in form key1=value1nkey2=value2n....

get_attributes_hash ( OBJNUM )

Like get_attributes() except that the attributes are returned as a hash.

get_text ( OBJNUM )

Returns body text for the objnum passed. This usually means HTML sans anchors in practical terms.

get_html ( OBJNUM )

Returns HTML text, including anchors, for the objnum passed.

exec_cgi ( OBJNUM )

Returns output of the CGI, for the objnum passed. Depends on the CGI script not requiring input.

insert_attribute ( OBJNUM, NAME, VALUE )

Adds an attribute to the given objnum. Note that HyperWave allows multiple attributes of the same name, so if you add an attribute that already exists youll end up with two. Use change_attribute if you want to overwrite the old one.

remove_attribute ( OBJNUM, NAME, VALUE )

Removes an attribute to the given objnum. Note that you DO need to know the old value because HyperWave allows multiple attributes with the same value.

change_attribute ( OBJNUM, NAME, OLD_VALUE, NEW_VALUE )

Alters an attribute to the given objnum (NB: needs to know old value).

get_children ( OBJNUM )

Returns objnums for all the children in the objnum passed. If the object was a leaf node (ie: no children) youll get a 0 back.

get_parents ( OBJNUM )

Returns objnums for all the parents in the objnum passed. If the object had no parents (it was the root collection) youll get a 0 back.

get_anchors ( OBJNUM )

Returns objnums for all the anchors in the document passed.

insert_object ( OBJRECORD );

Inserts an object on the HyperWave server. Returns object ID of the new object.

OBJRECORD should be in the form Attribute=AttributeValuenAttr2=Value2 and must contain certain parameters such as the parent object, name, document type, etc. It is suggested that you use one of the other insert_* commands as they provide a friendlier interface. This command is provided primarily for completeness.

insert_collection ( PARENT_OBJNUM, NAME [, OTHER_PARAMS ] )

Inserts a collection on the HyperWave server. Returns object ID of the new collection.

PARENT_OBJNUM is the object number (probably returned from get_objnum_by_name() of the collection to insert this collection into. NAME is the name attribute, this will become the apparent URL to somebody using the WaveMaster interface.
OTHER_PARAMS should be in the form Attribute=AttributeValuenAttr2=Value2 and so on. You might particularly want to set a Title for the collection.

insert_image ( OBJNUM, PARENT, NAME )

Adds a new picture. NOT YET IMPLEMENTED.

insert_text ( OBJNUM, PARENT )

Adds a new text object (no anchors). NOT YET IMPLEMENTED.

insert_html ( OBJNUM )

Adds a new html object (we parse the anchors). NOT YET IMPLEMENTED.

error ( )

Returns a human-readable string describing the previous server error.

server_error_message ( )

Returns a human-readable string describing the previous server error.

<<less
Download (0.017MB)
Added: 2007-03-21 License: Perl Artistic License Price:
950 downloads
Internet Storm Center 1.0

Internet Storm Center 1.0


Internet Storm Center is a clone of the simple little Windows Konfabulator ISCTracker widget by Bob Rudis. more>>
Internet Storm Center is a clone of the simple little Windows Konfabulator ISCTracker widget by Bob Rudis. It puts a little coloured globe on your desktop, with the colour of the land corresponding to the current level of Internet Storm Tracker.

Clicking on the globe takes you directly to isc.sans.org.

<<less
Download (0.027MB)
Added: 2006-06-20 License: GPL (GNU General Public License) Price:
1224 downloads
FakeBold Font patches for QT 4.3.x 0.1

FakeBold Font patches for QT 4.3.x 0.1


FakeBold Font patches for QT 4.3.x fake a bold font style and output for some fonts without bold support. more>>
FakeBold Font patches for QT 4.3.x fake a bold font style and output for some fonts without bold support.

It is specially and very useful for CJK fonts. actually it works with all fonts without bold style.

Here I use FT_Glyph_Embolden to get a bold glyph.

These patches is not related to font rendering result, if you want to control font rendering result, please control fontconfig configurations.

Screenshot1: shows bold/bolditalic support with "SOng" and "Hei" Chinese font.

Screenshot1: shows bold/italic support for Chinese,Korean,Yi,Tibetan with Sans fontset(Song,SIL Yi, Tibetan machine uni fonts)

<<less
Download (0.004MB)
Added: 2007-08-10 License: GPL (GNU General Public License) Price:
809 downloads
libxnm 0.1.1

libxnm 0.1.1


libxnm project is a library for parsing and retrieving data from the XNM file format. more>>
libxnm project is a library for parsing and retrieving data from the XNM file format.
The prevailing meta-format used today for serialization is XML. XML was originally written as a markup language, and as such its original intent was to add additional information to free flowing text.
This is indeed what is needed in the context of text markup, e.g. for a web page or a word processor program. But using XML for general purpose object serialization generates very verbose serialization that are way larger than necessary.
Another shortcoming of XML is that there still is no support for binary objects. This again is partly based in its markup roots.
Main features:
- Recursively defined.
- Map to the scalar/table/hash structures of perl/python/ruby
- Not limited by preexisting language formats (JSON).
- Short, consise, visually appealing. Low signal to noise.
- No need to quote keys or one word values.
- Support binary data.
- Tables are enclosed by { } , arrays by [ ].
Examples of XNM
The following example shows a simple program configuration file:
fontsize: 16
fonts: { roman: Sans
italic: "Sans Italic"
bold: "Sans bold"
}
path: ["/usr/bin" "/bin" "/usr/local/bin"]
Here is another example copied from the wikipedia json page:
firstName: John
lastName: Smith
address: {
city: "New York, NY"
zipCode: 10021
streetAddress: "21 2nd Street"
}
phoneNumbers: [
"212 732-1234"
"646 123-4567"
]
The main (only) differences to JSON are:
Single words dont need quotes
Commas are not used between key/value pairs
Here is a third example translated from the gaim prefs file:
core => {
away => {
idle_reporting=>system
away_when_idle=>0
mins_before_way=>10
auto_reply=>awayidle
report_idle=>1
}
buddies => {}
contact => {
last_match => 0
offline_score => 2
away_score => 2
idle_score => 1
}
gaim => {
gtk=> {
browsers=> {
place=>F
command=>"xterm -e lynx %s"
browser=>firefox
new_window=>F
}
plugins => [
/usr/lib/gaim/gaimrc.so
/usr/lib/gaim/ssl-nss.so
/usr/lib/gaim/ssl.so
]
}
}
}
Note that the separater character used between keys and values is => combination like in perl.
<<less
Download (0.37MB)
Added: 2007-01-17 License: LGPL (GNU Lesser General Public License) Price:
1011 downloads
OpenCCG 0.9.0

OpenCCG 0.9.0


OpenCCG project is a collection of natural language processing components. more>>
OpenCCG project is a collection of natural language processing components.
OpenCCG, the OpenNLP CCG Library, is a collection of natural language processing components and tools which provide support for parsing and realization with Combinatory Categorial Grammar (CCG).
Enhancements:
- Refactored realizer to put all no-sem edges on the agenda, which requires making an exception for edges with no indices in the implementation of the index filter, but otherwise yields a more uniform approach to creating edges.
- Refactored realizer to use representative edges (one per cat) instead of edge groups, which ends up being simpler on the whole and should be easier to explain.
- Refactored categories to allow for equality checks with and without taking the LFs into consideration.
- Refactored edge equiv classes to use coverage bit vector and cat sans LF to check equality.
- Refactored lex instantiation to produce all possible instantiations that respect the alt exclusivity constraints.
- Changed Sign, DerivationHistory to store rule object.
- Changed alt edge construction to create new LF from input signs and rule, since signs in equiv class of alts can now have different LFs.
- Added active alt tracking and completing of edges with optional bits.
- Changed HyloVar to check for equal types when checking for equality up to var renaming.
- Refactored generics to avoid type warnings in Eclipse.
- Relaxed LF chunking constraints to allow combinations with edges (or trackers more generally) that are shared across multiple alt set options.
- Added "shared" attribute to nominal terms to indicate references to nodes that are shared across alternatives in a disjunctive LF; then revamped and reinforced the LF chunking constraints.
- Fixed problem with signMap not pointing to opt-completed edge.
- Improved edge printing from realizer chart to show derivations.
- Updated realizer to keep edges whose signs have the simplest derivation, among those with the same surface words.
- Added filter for ungrammatical test cases in ccg-test text output.
- Added first draft of realizer manual.
<<less
Download (4.9MB)
Added: 2006-10-19 License: LGPL (GNU Lesser General Public License) Price:
1102 downloads
Tech Mon Lte 0.1

Tech Mon Lte 0.1


Tech Mon Lte is a TechMon variation with no frames, Default font used in theme is Bitstream Vera Sans. more>>
Tech Mon Lte is a TechMon variation with no frames, Default font used in theme is Bitstream Vera Sans, make sure you have this font.

This version works best on a darker background, please let me know if you need any variations for lighter wallpaper.

As always, any issues, report back here.

<<less
Download (0.028MB)
Added: 2006-06-21 License: GPL (GNU General Public License) Price:
1220 downloads
AutoLoader 5.63

AutoLoader 5.63


AutoLoader is a Perl module that can load subroutines only on demand. more>>
AutoLoader is a Perl module that can load subroutines only on demand.

SYNOPSIS

package Foo;
use AutoLoader AUTOLOAD; # import the default AUTOLOAD subroutine

package Bar;
use AutoLoader; # dont import AUTOLOAD, define our own
sub AUTOLOAD {
...
$AutoLoader::AUTOLOAD = "...";
goto &AutoLoader::AUTOLOAD;
}

The AutoLoader module works with the AutoSplit module and the __END__ token to defer the loading of some subroutines until they are used rather than loading them all at once.

To use AutoLoader, the author of a module has to place the definitions of subroutines to be autoloaded after an __END__ token. (See perldata.) The AutoSplit module can then be run manually to extract the definitions into individual files auto/funcname.al.

AutoLoader implements an AUTOLOAD subroutine. When an undefined subroutine in is called in a client module of AutoLoader, AutoLoaders AUTOLOAD subroutine attempts to locate the subroutine in a file with a name related to the location of the file from which the client module was read. As an example, if POSIX.pm is located in /usr/local/lib/perl5/POSIX.pm, AutoLoader will look for perl subroutines POSIX in /usr/local/lib/perl5/auto/POSIX/*.al, where the .al file has the same name as the subroutine, sans package. If such a file exists, AUTOLOAD will read and evaluate it, thus (presumably) defining the needed subroutine. AUTOLOAD will then goto the newly defined subroutine.
Once this process completes for a given function, it is defined, so future calls to the subroutine will bypass the AUTOLOAD mechanism.

Subroutine Stubs

In order for object method lookup and/or prototype checking to operate correctly even when methods have not yet been defined it is necessary to "forward declare" each subroutine (as in sub NAME;). See "SYNOPSIS" in perlsub. Such forward declaration creates "subroutine stubs", which are place holders with no code.

The AutoSplit and AutoLoader modules automate the creation of forward declarations. The AutoSplit module creates an index file containing forward declarations of all the AutoSplit subroutines. When the AutoLoader module is used it loads these declarations into its callers package.

Because of this mechanism it is important that AutoLoader is always used and not required.

Using AutoLoaders AUTOLOAD Subroutine

In order to use AutoLoaders AUTOLOAD subroutine you must explicitly import it:

use AutoLoader AUTOLOAD;

Overriding AutoLoaders AUTOLOAD Subroutine

Some modules, mainly extensions, provide their own AUTOLOAD subroutines. They typically need to check for some special cases (such as constants) and then fallback to AutoLoaders AUTOLOAD for the rest.

Such modules should not import AutoLoaders AUTOLOAD subroutine. Instead, they should define their own AUTOLOAD subroutines along these lines:

use AutoLoader;
use Carp;

sub AUTOLOAD {
my $sub = $AUTOLOAD;
(my $constname = $sub) =~ s/.*:://;
my $val = constant($constname, @_ ? $_[0] : 0);
if ($! != 0) {
if ($! =~ /Invalid/ || $!{EINVAL}) {
$AutoLoader::AUTOLOAD = $sub;
goto &AutoLoader::AUTOLOAD;
}
else {
croak "Your vendor has not defined constant $constname";
}
}
*$sub = sub { $val }; # same as: eval "sub $sub { $val }";
goto &$sub;
}

If any modules own AUTOLOAD subroutine has no need to fallback to the AutoLoaders AUTOLOAD subroutine (because it doesnt have any AutoSplit subroutines), then that module should not use AutoLoader at all.

Package Lexicals

Package lexicals declared with my in the main block of a package using AutoLoader will not be visible to auto-loaded subroutines, due to the fact that the given scope ends at the __END__ marker. A module using such variables as package globals will not work properly under the AutoLoader.

The vars pragma (see "vars" in perlmod) may be used in such situations as an alternative to explicitly qualifying all globals with the package namespace. Variables pre-declared with this pragma will be visible to any autoloaded routines (but will not be invisible outside the package, unfortunately).

Not Using AutoLoader

You can stop using AutoLoader by simply

no AutoLoader;

AutoLoader vs. SelfLoader

The AutoLoader is similar in purpose to SelfLoader: both delay the loading of subroutines.

SelfLoader uses the __DATA__ marker rather than __END__. While this avoids the use of a hierarchy of disk files and the associated open/close for each routine loaded, SelfLoader suffers a startup speed disadvantage in the one-time parsing of the lines after __DATA__, after which routines are cached. SelfLoader can also handle multiple packages in a file.

AutoLoader only reads code as it is requested, and in many cases should be faster, but requires a mechanism like AutoSplit be used to create the individual files. ExtUtils::MakeMaker will invoke AutoSplit automatically if AutoLoader is used in a module source file.

<<less
Download (0.016MB)
Added: 2007-05-14 License: Perl Artistic License Price:
894 downloads
Secleted [ 0 ] software to compare
  • Page: 1 of 2
  • 1
  • 2