NAME

ore

ABSTRACT

Sugar for Perl 5 one-liners

SYNOPSIS

BEGIN {
  $ENV{New_File_Temp} = 'ft';
}

use ore;

$ft

# "File::Temp"

DESCRIPTION

This package provides automatic package handling and object instantiation based on environment variables. This is not a toy, but it's also not a joke. This package exists because I was bored, shut-in due to the COVID-19 epidemic of 2020, and inspired by new and the ravings of a madman (mst). Though you could use this package in a script it's meant to be used from the command-line.

new-example

Simple command-line example using env vars to drive object instantiation:

$ New_File_Temp=ft perl -More -e 'dd $ft'

# "File::Temp"

use-example

Another simple command-line example using env vars to return a Data::Object::Space object which calls children and returns an arrayref of Data::Object::Space objects:

$ Use_DBI=dbi perl -More -e 'dd $dbi->children'

# [
#   ...,
#   "DBI/DBD",
#   "DBI/Profile",
#   "DBI/ProfileData",
#   "DBI/ProfileDumper",
#   ...,
# ]

arg-example

Here's another simple command-line example using args as env vars with ordered variable interpolation:

$ perl -More -E 'dd $pt' New_File_Temp=ft New_Path_Tiny='pt; $ft'

# /var/folders/pc/v4xb_.../T/JtYaKLTTSo

etc-example

Here's a command-line example using the aforementioned sugar with the ever-awesome Reply repl:

$ New_Path_Tiny='pt; /tmp' reply -More

0> $pt

# $res[0] = bless(['/tmp', '/tmp'], 'Path::Tiny')

Or, go even further and hack together your own environment vars driven Dotenv, Reply, and perl -More based REPL:

#!/usr/bin/env perl

use Dotenv -load => "$0.env";

use ore;

my $reply = `which reply`;

chomp $reply;

require $reply;

Then, provided you've the set appropriate env vars in reply.env, you could use your custom REPL at the command-line as per usual:

$ ./reply

0> $pt

# $res[0] = bless(['/tmp', '/tmp'], 'Path::Tiny')

AUTHOR

Al Newkirk, awncorp@cpan.org

LICENSE

Copyright (C) 2011-2019, Al Newkirk, et al.

This is free software; you can redistribute it and/or modify it under the terms of the The Apache License, Version 2.0, as elucidated in the "license file".

PROJECT

Wiki

Project

Initiatives

Milestones

Contributing

Issues