Main > Free Download Search >

Free meals to cook freeze ahead of time software for linux

meals to cook freeze ahead of time

Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 4493
Yet Another Time Machine 0.4

Yet Another Time Machine 0.4


Yet Another Time Machine is a command line Ogg Vorbis and MPEG audio player. more>>
Yet Another Time Machine is a command line Ogg Vorbis and MPEG audio player with the ability to control the tempo of playback without changing the pitch.
Primary usage would be to listen (for example) to audio books at 150% tempo. This is still understandable and saves time, hence the name of the program.
The following audio encoding formats are supported:
- Ogg Vorbis
- Ogg Speex
- MPEG
- All formats supported by libsndfile (FLAC, WAV, AIFF, ...)
Enhancements:
- Version 0.4 adds support for libsndfile.
- There is also an undocumented gem, you can use < and > to slow down or speed up by 10%, and hitting SPACE can be used to pause playback.
<<less
Download (0.17MB)
Added: 2005-11-07 License: GPL (GNU General Public License) Price:
1446 downloads
cx_Freeze 3.0.3

cx_Freeze 3.0.3


cx_Freeze is a set of utilities for freezing Python scripts into executables. more>>
cx_Freeze module is a set of utilities that can freeze Python scripts into executables in a cross platform way, using many of the techniques found in Thomas Hellers py2exe, Gordon McMillans Installer, and the Freeze utility that ships with Python itself.
Why did I go to the trouble of creating another set of utilities when these three utilities already existed? The Freeze utility that comes with Python itself requires a source distribution, a C compiler and linker which makes for a complex environment for creating executables. In addition, this method is very slow for creating executables as compared to the other methods. py2exe is intended for development on Windows only and cx_Freeze is intended for cross platform development. Installer uses an import hook which means that the development environment and runtime environment are considerably different.
How does it work? A base executable is created which contains code for unpacking the list of frozen modules, starting up the Python interpreter and passing control to the script which is being frozen. When a script is frozen, the script is searched for all references to modules and these modules are then byte compiled and written to the end of the base executable. If the modules that are referenced are extensions written in C, these modules must be included in the path in which the frozen executable is deployed.
Installation:
Extract the archive into a directory. In order to build cx_Freeze you need to have gcc and Python development include files and libraries available. Run the following commands.
python MakeFrozenBases.py
python FreezePython.py --no-copy-deps FreezePython.py
When these commands have completed successfully, the directory will be in the same state as a binary installation. Note that on Windows these scripts assume the presence of a mingw32 installation which can be acquired from http://www.mingw.org.
Enhancements:
- In Common.c, used MAXPATHLEN defined in the Python OS independent include file rather than the PATH_MAX define which is OS dependent and is not available on IRIX as noted by Andrew Jones.
- In the initscript ConsoleSetLibPath.py, added lines from initscript Console.py that should have been there since the only difference between that script and this one is the automatic re-execution of the executable.
- Added an explicit "import encodings" to the initscripts in order to handle Unicode encodings a little better. Thanks to Ralf Schmitt for pointing out the problem and its solution.
- Generated a meaningful name for the extension loader script so that it is clear which particular extension module is being loaded when an exception is being raised.
- In MakeFrozenBases.py, use distutils to figure out a few more platform-dependent linker flags as suggested by Ralf Schmitt.
<<less
Download (0.015MB)
Added: 2006-07-21 License: Python License Price:
1200 downloads
BoboBot preview3

BoboBot preview3


BoboBot project is a one-player side-view game. more>>
BoboBot project is a one-player side-view game in the style of Capcoms excellent "MegaMan" series of Nintendo, PlayStation and PC games.
As "BoboBot," the `robo-monkey, you travel to eight different levels fighting your way to the boss. Once defeated, you gain that boss special weapon. This preview release contains 4 of the 8+ planned levels and has sound and joystick support for Linux users.
Main features:
- Slippery ice
- Unlit tombs and caves
- Walking "Bomb-Bots"
- Radio-controlled fish
- On-the-loose mine carts
- Deadly birds
- Robotic flies
- and bosses like "The Mummy", "Freeze-Man" and the insane "Chrono-Man".
Enhancements:
- License changed to GPL
- Documentation converted to HTML
- BoboBot now wears hats
- Fixed up for newer versions of SDL and SDL_Mixer
<<less
Download (1.3MB)
Added: 2006-11-17 License: Freeware Price:
1071 downloads
TimeTrex Payroll and Time Management 2.2.13-1034

TimeTrex Payroll and Time Management 2.2.13-1034


TimeTrex is a complete web-based Payroll and Time Management suite which offers Employee Scheduling, Time and Attendance (time clock, timesheet), Job ... more>> <<less
Download (3906KB)
Added: 2009-04-14 License: Freeware Price: Free
237 downloads
Gourmet Recipe Manager 0.13.3

Gourmet Recipe Manager 0.13.3


Gourmet Recipe Manager is a simple but powerful recipe managing application that is intended for the GNOME desktop environment. more>>
Gourmet Recipe Manager is a simple but powerful recipe-managing application. Gourmet is intended for the GNOME desktop environment, but works on any platform that gtk supports, including windows.
Gourmet allows you to collect, search and organize your recipes, and to automatically generate shopping lists from your collection. Take a look at the screenshots for a sense of how this works.
Gourmet Recipe Manager is free software. If you want to contribute to the project and youre a python programmer, please take a look at the source code and start hacking! If you would like to use Gourmet in a language other than English, you can help translate gourmet using the rosetta web-based tool.
Simple Search
Screenshot of Search viewA simple index view allows you to look at all your recipes as a list and quickly search through them by ingredient, title, category, cuisine, rating, or instructions. Searching happens as you type to save you keystrokes, and multiple kinds of searches can easily be combined from this same view (so you can search for salads (category) with walnuts (ingredient) without having to open a separate dialog. You can easily sort recipes by clicking on the column youd like to sort by. Furthermore, for advanced users, you can search using regular expressions.
Recipe Editor
Screenshot of Search viewA recipe card view allows editing and entering individual recipes easily. It also instantly multiplies ingredient amounts if you need to multiply or divide a recipe, and even adjusts units to keep them as readable as possible (so that 2 tbs. x 4 displays as 1/2 cup). Gourmet aims to make entering ingredients as intuitive and painless as possible, while still allowing for powerful features. Major Features:
A keyed ingredient list which allows searches and shopping-list generation to understand synonyms (like aubergine and eggplant) and ignore ingredient descriptions (i.e. to treat "tomatoes, finely chopped" as "tomatoes" for the purpose of searching and generating shopping lists.
An intuitive spreadsheet-like editing interface
An alternative, fast form-like ingredient entering interface (which allows you to easily type ingredient lists without looking at the screen.
Drag-n-drop support for importing ingredient lists from your web browser or other application.
Support for pasting ingredient lists in from your clipboard.
Support for grouping ingredients within a recipe.
Support for calling another recipe as an ingredient.(Note: this allows you to use a recipe as a menu!)
Support for optional ingredients.
In addition to ingredients and instructions, you can enter information about categories, cuisines, and ratings that you can later use to search for recipes. In each case, Gourmet allows you a drop down menu of standard categories and categories youve used in the past, but also allows you to enter any custom categories you like.
You can also add images to your recipe for an attractive display. Thumbnails will be displayed in the recipe index. Currently, only HTML export supports images.
Import and Export
Gourmet includes simple and powerful import and export filters for a number of formats, including the two most common recipe formats on the web (mealmaster and mastercook).
Gourmet can import the following kinds of files:
Mealmaster Files
MasterCook text files
MasterCook XML files
Gourmet XML files
A number of popular recipe websites, such as epicurious and recipezaar
Gourmet also can import ingredient lists from a regular plain text list, which can be imported from a file, pasted from the clipboard or dragged onto the editing view.
Gourmet can export the following kinds of files:
Mealmaster files
Rich Text Format
Plain Text
Recipe Web Pages
Gourmet XML files
On GNU/Linux systems, gourmet can also export PDF or postscript files via its printing interface.
Gourmet aims to import and export as many common formats as possible. If you have a format youd like to import, please submit a feature request, or, if youre a programmer, go ahead and start writing the filter yourself!
Shopping List Manager
Screenshot of Shopping List ViewGourmet allows you to automatically generate shopping list from your recipes. You can easily multiply recipes when you add them to adjust for the number of people youre cooking for. If the units are convertable, different units used in different recipes will be added up correctly on your shoppings list (Gourmet even knows the density of some common foods to allow volume-to-weight conversions!). If Gourmet cant convert your units, the shopping list will simply display both units -- for example, the screenshot shows both tsp. and cloves of garlic, since these units cant be sensibly combined.
If you already have an item that appears on your shopping list, you can drag it into your "pantry" so it wont be included! Items added to your pantry will be remembered in the future (so you dont have to manually remove items like "water" from your shopping list every time a recipe calls for it). However, since the pantry list is shown next to the shopping list, you will always have a list at hand of all the ingredients called for by your recipes. (You can drag an item back from the pantry to the shopping list if youve run out.)
The shopping list is also automatically sorted into categories. Gourmet knows the basic categories of a number of foods (produce, meat, fish), and you can create whatever categories are convenient for your own shopping -- I use it for sorting out the basic sections and aisles of my local grocery store and those items that I get from specialty stores. You can set up shopping categories as you enter recipes, or you can move ingredients around within the shopping list view by drag and dropping or using a popup menu.
Main features:
- Simple searching and sorting
- Easy recipe editing
- Import and export from various formats
- A shopping list creator and organizer
<<less
Download (2.1MB)
Added: 2007-01-04 License: GPL (GNU General Public License) Price:
1027 downloads
jclasslib bytecode viewer 3.0

jclasslib bytecode viewer 3.0


jclasslib bytecode viewer is a Java bytecode viewer and class modification library. more>>
JProfiler is an award-winning all-in-one Java profiler. JProfilers intuitive GUI helps you find performance bottlenecks, pin down memory leaks and resolve threading issues.
Even though JProfiler has a powerful feature set, its a Java profiler that is extremely easy to use! JProfilers user interface provides a unified view on the profiled application and puts all the information you need right at your fingertips with its intuitive hierarchy of views.
Configure your application for profiling
When starting up JProfiler, the start center is brought up. Here you can manage and start your profiling sessions. To configure your application for profiling, change to the "New session" tab and click on the New session button. Enter the required information into the session config dialog as described below and select Ok to start profiling. Thats all it takes. Note the Help button which appears on all of JProfilers dialogs displays a context sensitive explanation of all features.
While the configuration dialog displays numerous options that you will not want to miss after becoming familiar with JProfiler, entering the basic pieces of information is really very simple:
1. Enter a name for your session.
2. Enter the name of your main class.
3. Enter your class path.
4. Press Ok.
Before profiling is actually started, the profiling settings dialog is displayed where you can select the focus for your profiling run. Although profiling produces an overhead when running your application, you can minimize it by choosing a setting for which JProfiler only records information that is interesting for you.
If you want to fine-tune your profiling settings, the [Edit] button brings up a dialog with all available configuration options for profiling.
Observe classes and allocations
To find out what is going on the heap in terms of objects and classes, turn to the classes monitor. It gives you continuous updates and lets you set marks to observe changes over time. To see references, allocations and object data for your selection, you can take a snapshot by clicking on the camera in JProfilers toolbar.
If you want to know where your objects are allocated, you can go to the allocation monitor. Here, you can inspect the call tree and find out what method calls have caused the allocation of a selected class or package. Just like in the allocation monitor, you can display this data for live and garbage collected objects.
An cumulated overview on which methods are responsible for allocations is given by the allocation hot spots view. Each hot spot can be expanded and the backtraces that lead to the invocation of the hot spot are displayed. You can also mark the current values and view the differences in allocations over time.
Find memory leaks
JProfilers heap walker works like a browser: it displays a current set of objects that can be changed by adding selection steps with the [Use selected] button. You can inspect the current object set in the four views of the heap walker.
In the classes view, you can select one or several classes and add a selection step. The new object set will contain only the selected instances. This is often the first thing you want to do after taking a snapshot. You can perform this step automatically by invoking the heap walker from the classes monitor.
The allocations view of the heap walker shows the allocation tree and the allocation hot spot list of the current object set. You can add a selection step for one or multiple allocation spots or hot spots. The new object set will then be restricted to the selected instances only.
When youre looking for the cause of a memory leak, the reference view is the most important view in JProfiler. Here, you can find out why an object has not been garbage collected. Use the "Show path to GC root" function to show where the JVM hangs on to the selected instance.
Not only is the heap walker your first stop for finding memory leaks, it also makes for an excellent debugging facility. In the data view, you can inspect instances, arrays and classes in the current object set and navigate along references. There are many situations where the usual debugging approach will fail and JProfiler will help you find out.
Zoom in on performance bottlenecks
Controlling your applications performance may be driven by quality of service constraints or by general quality assurance, JProfilers CPU views lend themselves naturally to both approaches.
To record CPU data, you switch to the CPU section and click on the recording button in JProfilers tool bar. The first view in the CPU section shows the invocation tree, cumulated for all threads. To find performance related problem spots, just follow the big percentages when opening the tree nodes. Also, the absolute times and the number of invocations that are displayed for each node can help you in getting a feeling for the situation. Once you become familiar with JProfiler, you may want to customize this view to best fit your personal preferences.
The invocation tree is a top-down view on the method calls of your application. This viewpoint is most useful when you experience an actual performance bottleneck in your application. If you want to improve overall performance, a bottom-up view may be more applicable.
This kind of view - called hot spots view - shows the methods where most of the time is spent. By opening these nodes you get backtraces which show the various invocation paths together with the percentages of their contributions. Note that by default, method calls within Java core classes are not shown separately - each of your library calls is treated as opaque. You can change this behavior by deactivating the corresponding filter sets.
The method graph combines both viewpoints. Incoming and outgoing method calls are presented in the same way. For a number of situations, the method graph can give you more insight than the invocation tree and the hot spots view. The best strategy is to use the invocation and hot spots views first and switch to the method graph for detailed analysis.
Solve thread-related problems
Threads can be exceptionally difficult to debug, especially if you dont have sufficient information on the actual sequence and status of the threads in your application. JProfilers thread views provide you with exactly this knowledge.
The thread history view shows a continuous update of the lifelines of all threads on the horizontal axis. The names of the threads are displayed on the vertical axis in the order of their creation. Each color signifies a different thread status. Orange means that the thread was sleeping, green stands for a runnable thread while red is displayed if the thread was waiting for a monitor. You can zoom in and out to your desired detail level or have the time axis fit your windows size automatically.
If youre more interested in whats happening right now, the thread monitor view is the right place to look at. Here, you can sort threads, filter with respect to thread status and view additional information on each thread.
Should you ever have a deadlock in your application, the deadlock detection graph will help you analyze the involved threads and the locking situation. Simple deadlocks like the one shown could be worked out by hand from the other views, but for complicated deadlock involving a greater number of threads this view is indispensable.
Reducing general monitor contention and debugging locking sequences requires a detailed view of the current monitor usage and a history of all monitor-related events. JProfiler has both. Below you see the monitor usage history which shows a blocking event together with the stack trace of the waiting thread.
Keep an eye on your JVM
Monitoring cumulative parameters of the virtual machine can be a highly fruitful activity, even if everything seems to be all right. Measuring and observing parameters like heap size, object count, loaded classes and thread numbers can point to dangerous trends and problematic behavior to look out for. In its VM telemetry view section, JProfiler features various telemetry controls which provide you with the information you need to stay one step ahead.
The number of objects on the heap, split in arrays and non-arrays. This is your first stop if you are suspecting a memory leak. All objects with live references are included, as well as those which are unreferenced but the garbage collector hasnt had a chance to collect yet.
The garbage collector activity which displays freed and moved objects. If your application is thrashing the heap excessively, this will show up here. Moving large numbers of objects places a high burden on the virtual machine and can lead to temporary freezes. Mostly this occurs when the virtual machine is enlarging the heap.
The number of threads in the virtual machine, split in active and inactive threads. This is useful if you create a large number of threads and need information on changes in their total number and how many of them actually run.
Enhancements:
- New futures:
- rewritten eclipse 3.x integration
- rewritten IDEA 4.x integration
- IDE integration for JDeveloper
- IDE integration for Netbeans 4.0
- considerably reduced memory consumption
- improved long-term stability for profiling
- heap walker: in the cumulated incoming reference view, reference holders as well as referenced objects can be displayed and selected
- option to keep the profiled JVM alive
- support for Java Web Start 1.5
- CSV export for graphs
- enhancements in XML export for trees
- integration wizard for profiling servers in IBM WSAD
- integration wizards for Pramati 3.5 and Pramati 4.x application server
- integration wizard for Websphere 4.0 Advanced Edition
- integration wizard for Sun Java System Web Server
- integration wizard for Sun Java System Application Server
- integration wizard for Oracle 10g Application server
- integration wizard for Apple WebObjects Developer 5.x
- snapshot files (*.jps) can be opened from the command line and from the Windows explorer
- JBuilder IDE integration now supports JBuilder 2005
- much better appearance of the JProfiler GUI with Windows native look and feel
- JProfiler GUI now also runs under Java 1.5
- Bug fixes:
- monitor statistics were broken
- invalid class files caused a shutdown of the profiled application
- many bug fixes in the GUI
<<less
Download (1.7MB)
Added: 2005-04-22 License: GPL (GNU General Public License) Price:
1648 downloads
Bookmark Time 0.2 Alpha

Bookmark Time 0.2 Alpha


Bookmark Time is an Amarok script that lets you bookmark a point in time in a music file. more>>
Bookmark Time is an Amarok script that lets you bookmark a point in time in a music file.

When you play it again, you can choose the bookmarked times from the mouse menu.

<<less
Download (0.013MB)
Added: 2007-02-12 License: GPL (GNU General Public License) Price:
984 downloads
Deathchase 3D 0.9

Deathchase 3D 0.9


Deathchase 3D is a remake of the Spectrum arcade game of the same name. more>>
Deathchase 3D project is a remake of the Spectrum arcade game of the same name.

Deathchase 3D is a remake of the Spectrum game of the same name, which is itself based on the sequence in "Return of the Jedi" chasing Stormtroopers through the forests of Endor on light-speeders.

Its a fake perspective 3D game: avoid the trees and shoot the bad guys ahead of you. It uses the SDL library.

It is written for Linux but should run on anything SDL supports.

<<less
Download (0.57MB)
Added: 2006-12-08 License: GPL (GNU General Public License) Price:
1056 downloads
Journyx Free Time Tracking Software 7.6

Journyx Free Time Tracking Software 7.6


Journyx Time Tracking is time tracking software that lets an employee enter project time and expense information from anywhere on the web. Add Journyx... more>> <<less
Download (31250KB)
Added: 2009-04-29 License: Freeware Price: Free
177 downloads
Cook County PIN Search 2.1

Cook County PIN Search 2.1


Cook County PIN Search provides a title search tool. more>>
Cook County PIN Search provides a title search tool.

Cook County (IL, USA) Property Index Number Search

A title search tool. If in the course of your browsing you come across a Cook County Property Index Number (PIN) (format 99-99-999-999 or 99-99-999-999-9999) in your browser window, select it and "right"-click and on the context menu you will be offered options to open new tabs of relevant information from Cook County websites.

<<less
Download (0.004MB)
Added: 2007-04-05 License: MPL (Mozilla Public License) Price:
933 downloads
Catalyst::Manual::Cookbook 5.7001

Catalyst::Manual::Cookbook 5.7001


Catalyst::Manual::Cookbook is a Perl module for cooking with Catalyst. more>>
Catalyst::Manual::Cookbook is a Perl module for cooking with Catalyst.

These recipes cover some basic stuff that is worth knowing for catalyst developers.

<<less
Download (0.22MB)
Added: 2006-09-12 License: Perl Artistic License Price:
1142 downloads
FreezeThaw 0.43

FreezeThaw 0.43


FreezeThaw is a Perl module for converting Perl structures to strings and back. more>>
FreezeThaw is a Perl module for converting Perl structures to strings and back.
SYNOPSIS
use FreezeThaw qw(freeze thaw cmpStr safeFreeze cmpStrHard);
$string = freeze $data1, $data2, $data3;
...
($olddata1, $olddata2, $olddata3) = thaw $string;
if (cmpStr($olddata2,$data2) == 0) {print "OK!"}
Converts data to/from stringified form, appropriate for saving-to/reading-from permanent storage.
Deals with objects, circular lists, repeated appearence of the same refence. Does not deal with overloaded stringify operator yet.
EXPORT
Exportable
freeze thaw cmpStr cmpStrHard safeFreeze.
User API
cmpStr
analogue of cmp for data. Takes two arguments and compares them as separate entities.
cmpStrHard
analogue of cmp for data. Takes two arguments and compares them considered as a group.
freeze
returns a string that encupsulates its arguments (considered as a group). thawing this string leads to a fatal error if arguments to freeze contained references to GLOBs and CODEs.
safeFreeze
returns a string that encupsulates its arguments (considered as a group). The result is thawable in the same process. thawing the result in a different process should result in a fatal error if arguments to safeFreeze contained references to GLOBs and CODEs.
thaw
takes one string argument and returns an array. The elements of the array are "equivalent" to arguments of the freeze command that created the string. Can result in a fatal error (see above).
Version restrictions:
A lot of objects are blessed in some obscure packages by XSUB typemaps. It is not clear how to (automatically) prevent the UNIVERSAL methods to be called for objects in these packages.
The objects which can survive freeze()/thaw() cycle must also survive a change of a "member" to an equal member. Say, after
$a = [a => 3];
$a->{b} = $a->{a};
$a satisfies
$a->{b} == $a->{a}
This property will be broken by freeze()/thaw(), but it is also broken by
$a->{a} = delete $a->{a};
<<less
Download (0.010MB)
Added: 2007-05-17 License: Perl Artistic License Price:
891 downloads
PaulStretch 1.024

PaulStretch 1.024


PaulStretch is a program for stretching the audio. more>>
PaulStretch is a program for stretching the audio. It is suitable only for extreme sound stretching of the audio (like 50x) and for applying special effects by "spectral smoothing" the sounds.
It can transform any sound/music to a texture. The program is Open-Source and its released under the version 2 of the General Public License. You can download the source code for Linux or the Windows binaries.
Please note that this is suitable only for extreme time stretching (e.g. if have a melody of 3 minutes and you want to listen it in 3 hours). If you want "less extreme" time stretching, you can use a program which contains the SoundTouch library.
Main features:
- It produces high quality extreme sound stretching. While most sound stretching software sounds bad when trying to stretch the sounds a lot, this one is optimized for extreme sound stretching. So, the stretch amount is unlimited.
- You can play the stretched sound in real-time (including the possibility to "freeze" the sound) or you can render the whole sound or a part of it to audio files
- Support for WAV and OGG VORBIS files
- It is a Free Software
Enhancements:
- Input MP3 support, added effects, and other improvements.
<<less
Download (0.029MB)
Added: 2006-09-06 License: GPL (GNU General Public License) Price:
1144 downloads
TimeTrex Time and Attendance 2.2.13-1034

TimeTrex Time and Attendance 2.2.13-1034


Web-based Time And Attendance suite which offers Employee Time and Attendance (timeclock, timecard, timesheet) and Payroll all in single tightly integ... more>> <<less
Download (3906KB)
Added: 2009-04-20 License: Freeware Price: Free
838 downloads
PApp::Storable 1.2

PApp::Storable 1.2


Storable module is a persistence for Perl data structures. more>>
Storable module is a persistence for Perl data structures.

SYNOPSIS

use Storable;
store %table, file;
$hashref = retrieve(file);

use Storable qw(nstore store_fd nstore_fd freeze thaw dclone);

# Network order
nstore %table, file;
$hashref = retrieve(file); # There is NO nretrieve()

# Storing to and retrieving from an already opened file
store_fd @array, *STDOUT;
nstore_fd %table, *STDOUT;
$aryref = fd_retrieve(*SOCKET);
$hashref = fd_retrieve(*SOCKET);

# Serializing to memory
$serialized = freeze %table;
%table_clone = %{ thaw($serialized) };

# Deep (recursive) cloning
$cloneref = dclone($ref);

# Advisory locking
use Storable qw(lock_store lock_nstore lock_retrieve)
lock_store %table, file;
lock_nstore %table, file;
$hashref = lock_retrieve(file);

The Storable package brings persistence to your Perl data structures containing SCALAR, ARRAY, HASH or REF objects, i.e. anything that can be conveniently stored to disk and retrieved at a later time.

It can be used in the regular procedural way by calling store with a reference to the object to be stored, along with the file name where the image should be written.
The routine returns undef for I/O problems or other internal error, a true value otherwise. Serious errors are propagated as a die exception.

To retrieve data stored to disk, use retrieve with a file name. The objects stored into that file are recreated into memory for you, and a reference to the root object is returned. In case an I/O error occurs while reading, undef is returned instead. Other serious errors are propagated via die.

Since storage is performed recursively, you might want to stuff references to objects that share a lot of common data into a single array or hash table, and then store that object. That way, when you retrieve back the whole thing, the objects will continue to share what they originally shared.
At the cost of a slight header overhead, you may store to an already opened file descriptor using the store_fd routine, and retrieve from a file via fd_retrieve. Those names arent imported by default, so you will have to do that explicitly if you need those routines. The file descriptor you supply must be already opened, for read if youre going to retrieve and for write if you wish to store.

store_fd(%table, *STDOUT) || die "cant store to stdoutn";
$hashref = fd_retrieve(*STDIN);

You can also store data in network order to allow easy sharing across multiple platforms, or when storing on a socket known to be remotely connected. The routines to call have an initial n prefix for network, as in nstore and nstore_fd. At retrieval time, your data will be correctly restored so you dont have to know whether youre restoring from native or network ordered data. Double values are stored stringified to ensure portability as well, at the slight risk of loosing some precision in the last decimals.

When using fd_retrieve, objects are retrieved in sequence, one object (i.e. one recursive tree) per associated store_fd.
If youre more from the object-oriented camp, you can inherit from Storable and directly store your objects by invoking store as a method. The fact that the root of the to-be-stored tree is a blessed reference (i.e. an object) is special-cased so that the retrieve does not provide a reference to that object but rather the blessed object reference itself. (Otherwise, youd get a reference to that blessed object).

<<less
Download (0.39MB)
Added: 2007-08-02 License: Perl Artistic License Price:
813 downloads
Secleted [ 0 ] software to compare
  • Page: 1 of 5
  • 1
  • 2
  • 3
  • 4
  • 5