Naming things intelligently is hard. It requires a certain genius that frankly I think most people, like myself, lack. I spent a long time agonizing over what to call Data::Dump::Streamer. I eventually went with that name over some strong internal reservations (its too damn long for a utility modules) because a number of folks who i respect quite a bit seemed to favour it. Although a few releases later I added a "psuedo-namespace" to it called DDS, its not listed or registed but can be optionally installed when building DDS. The problem was that most of the Data:: namespace'es useful names are already taken, with a bunch of them taken by fairly poor quality modules. In fact I need to remove Data::BFDump as being obsoleted by Data::Dump::Streamer.
Also I've never understood why that name wasnt registered. Actually, while im not certain of this I have heard that of late very little registration is actually occuring. Perhaps because as you say you represent a SPOF and when you dont have the time the whole process comes to a halt.
The other one that _really_ annoys me is that the vast majority of Tie:: modules are horribly named. They should ALL be named Tie::Type(::Name)+. It seems so silly that there is no easy way to find out what types of tied array you can download for instance. I personally think Tie::Array::PackedC is a much better name than most of the Tie:: namespace. Consider:
# Well named
Tie::Array
Tie::Array::BoundedIndex
Tie::Array::FileWriter
Tie::Array::Iterable
Tie::Array::Iterable::BackwardIterator
Tie::Array::Iterable::ForwardIterator
Tie::Array::PackedC
Tie::Array::RestrictUpdates
Tie::Array::Sorted
Tie::Array::Test
Tie::Array::Unique
Tie::File
Tie::Hash
Tie::Hash::Abbrev
Tie::Hash::Abbrev::BibRefs
Tie::Hash::Abbrev::Smart
Tie::Hash::Approx
Tie::Hash::Array
Tie::Hash::Cannabinol
Tie::Hash::Constant
Tie::Hash::Expire
Tie::Hash::FixedKeys
Tie::Hash::Indexed
Tie::Hash::Interpolate
Tie::Hash::Layered
Tie::Hash::Longest
Tie::Hash::MultiValue
Tie::Hash::Rank
Tie::Hash::Regex
Tie::Hash::Sorted
Tie::Hash::Stack
Tie::Hash::Test
Tie::Hash::Transactional
Tie::Hash::TwoWay
Tie::Scalar
Tie::Scalar::Decay
Tie::Scalar::Escaped
Tie::Scalar::MarginOfError
Tie::Scalar::OK
Tie::Scalar::RestrictUpdates
Tie::Scalar::RingBuffer
Tie::Scalar::Sticky
Tie::Scalar::Test
Tie::Scalar::Timeout
Tie::Scalar::Transactional
# not so badly named
Tie::FileHandle::Base
Tie::FileHandle::Buffer
Tie::FileHandle::MultiPlex
Tie::Handle
Tie::Handle::CSV
Tie::Handle::Scalar
# outright badly named.
Tie::Alias
Tie::Alias::Array
Tie::Alias::Handle
Tie::Alias::Hash
Tie::AliasHash
Tie::AppendHash
Tie::Autotie
Tie::CArray
Tie::CPHash
Tie::CSV_File
Tie::Cache
Tie::Cache::LRU
Tie::Cache::LRU::Array
Tie::Cache::LRU::Expires
Tie::Cache::LRU::LinkedList
Tie::Cache::LRU::Virtual
Tie::CacheHash
Tie::Cacher
Tie::Cfg
Tie::CharArray
Tie::ClockTimer
Tie::Collection
Tie::Concurrent
Tie::Config
Tie::Counter
Tie::Coupler
Tie::Cvs
Tie::Cycle
Tie::DBI
Tie::DBI::ER
Tie::DB_File::SplitHash
Tie::DB_FileLock
Tie::DB_Lock
Tie::DNS
Tie::DataUUID
Tie::DeepTied
Tie::Depth
Tie::Dict
Tie::DictFile
Tie::Dir
Tie::DirHandle
Tie::Discovery
Tie::DiskUsage
Tie::DxHash
Tie::EncryptedHash
Tie::Eudora
Tie::FTP
Tie::FileLRUCache
Tie::Filter
Tie::Filter::Array
Tie::Filter::Hash
Tie::Filter::Scalar
Tie::FlipFlop
Tie::Folded
Tie::Form
Tie::FormA
Tie::Func
Tie::Function
Tie::GHash
Tie::Google
Tie::Gzip
Tie::HTML::Entities
Tie::HashDefaults
Tie::HashHistory
Tie::History
Tie::InsertOrderHash
Tie::IntegerArray
Tie::IxHash
Tie::IxHash::Easy
Tie::LDAP
Tie::LDAP::Entry
Tie::LLHash
Tie::Layers
Tie::LazyList
Tie::ListKeyedHash
Tie::LogFile
Tie::MAB2::Dualdb
Tie::MAB2::Dualdb::Id
Tie::MAB2::Dualdb::Recno
Tie::MAB2::Id
Tie::MAB2::Recno
Tie::MAB2::RecnoViaId
Tie::MLDBM
Tie::MLDBM::Lock::File
Tie::MLDBM::Lock::Null
Tie::MLDBM::Serialise::Storable
Tie::MLDBM::Store::DBI
Tie::MLDBM::Store::DB_File
Tie::Math
Tie::Mem
Tie::Memoize
Tie::MmapArray
Tie::Mounted
Tie::Multidim
Tie::NetAddr::IP
Tie::NormalArray
Tie::NumRange
Tie::OffsetArray
Tie::OneOff
Tie::Parent
Tie::PerFH
Tie::PerfectHash
Tie::Persistent
Tie::Pick
Tie::Proxy::Hash
Tie::PureDB
Tie::Quick
Tie::RDBM
Tie::RDBM::Cached
Tie::RangeHash
Tie::RefHash
Tie::RegexpHash
Tie::Registry
Tie::RemoteVar
Tie::RemoteVar::Callback
Tie::RemoteVar::Constant
Tie::RemoteVar::Tie
Tie::Restore
Tie::RevHash
Tie::RevRefHash
Tie::RndHash
Tie::STDERR
Tie::SecureHash
Tie::SentientHash
Tie::ShadowHash
Tie::ShiftSplice
Tie::Simple
Tie::Simple::Array
Tie::Simple::Handle
Tie::Simple::Hash
Tie::Simple::Scalar
Tie::Simple::Util
Tie::Slurp
Tie::SortHash
Tie::Static
Tie::StrictHash
Tie::SubstrHash
Tie::Sysctl
Tie::Syslog
Tie::Table
Tie::TextDir
Tie::TieConstant
Tie::TieDict
Tie::Tk::Listbox
Tie::Toggle
Tie::Tools
Tie::TransactHash
Tie::TwoLevelHash
Tie::URI::Escape
Tie::UrlEncoder
Tie::VecArray
Tie::WarnGlobal
Tie::Watch
Pretty much none of that last part of the list should have been registered IMO. I suppose its arguable that the ones _ending_ in 'Type' should be in the "not so badly named", but IMO they are just as bad. And there are probably a few in there that cant be better named because they have some special extra property, but even still I think the namespace is a just a big mess.
---
demerphq
First they ignore you, then they laugh at you, then they fight you, then you win.
-- Gandhi
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|