I've been looking at the source for the pm and wonder if I shouldn't imitate it in significant ways. source listing for Translate.pm For example, should I use Readonly for these values?
my ( $REST_HOST, $REST_URL, $CONSOLE_URL, %SIZE_LIMIT_FOR );
{
Readonly $REST_HOST => 'translation.googleapis.com';
Readonly $REST_URL => "https://$REST_HOST/language/translate
+/v2";
Readonly $CONSOLE_URL => "https://console.developers.google.com
+/cloud-resource-manager";
Readonly %SIZE_LIMIT_FOR => (
translate => 2000, # google states 2K but observed results
+vary
detect => 2000,
languages => 9999, # N/A
);
}
Also, I want to build a central hash to store the data. Values would go in with Getopt::Long and end up in %self . This treatment creates a class of it. One thing I don't see is where the value of $class gets passed to the sub new:
sub new {
my ( $class, $param_hr ) = @_;
my %self = (
key => 0,
format => 0,
model => 0,
prettyprint => 0,
default_source => 0,
default_target => 0,
data_format => 'perl',
timeout => 60,
force_post => 0,
rest_url => $REST_URL,
agent => ( sprintf '%s/%s', __PACKAGE__, $VERSION ),
cache_file => 0,
headers => {},
);
|