CPAN: Frage zum Konzept 'mehrere tie() auf eine Datei'

Beitrag lesen

Meinst du das binden derselben Variable mehrmals an die gleiche Klasse? Klar kriegt man da unterschiedliche Instanzen.

  
$ perl -MDevel::Peek -e'  
    use Tie::Hash::NamedCapture;  
    Dump tie %h, "Tie::Hash::NamedCapture";  
    Dump tie %h, "Tie::Hash::NamedCapture";  
'  
SV = IV(0x744218) at 0x744220  
  REFCNT = 2  
  FLAGS = (TEMP,ROK)  
  RV = 0x79d8c8  
  SV = PVMG(0x794660) at 0x79d8c8  
    REFCNT = 1  
    FLAGS = (PADMY,OBJECT,IOK,pIOK)  
    IV = 256  
    NV = 0  
    PV = 0  
    STASH = 0x75b460    "Tie::Hash::NamedCapture"  
SV = IV(0x75b938) at 0x75b940  
  REFCNT = 2  
  FLAGS = (TEMP,ROK)  
  RV = 0x744430  
  SV = PVMG(0x794690) at 0x744430  
    REFCNT = 1  
    FLAGS = (PADMY,OBJECT,IOK,pIOK)  
    IV = 256  
    NV = 0  
    PV = 0  
    STASH = 0x75b460    "Tie::Hash::NamedCapture"  

Wenn das ein Konsument deiner Klasse macht, ist das ein Programmierfehler und nicht anders zu sehen als $i = C->new; $i = C->new;. Dokumentiere dies unter einer Überschrift "Pitfalls", wenn du magst. AFAICS helfen Singletonmechanismen hier nicht. Vom gewaltsamen Herummurksen in den Eingeweiden von Perl zur Unterbindung dieses Fehlerfalls rate ich ab, die Risiken sind immer nicht absehbar und stehen nicht im Verhältnis zum Nutzen.