[SCM] branch, master, updated. 9f6a929c59e1ec92c9cbf1b55ee11ed2f9f7bb6a

TANIGUCHI Takaki takaki at asis.media-as.org
Thu Jan 5 00:57:37 UTC 2012


The following commit has been merged in the master branch:
commit 42b806e1facbc84b43aab057a24932676ce165ee
Author: TANIGUCHI Takaki <takaki at asis.media-as.org>
Date:   Wed Jan 4 18:16:42 2012 +0900

    run debuild clean

diff --git a/MYMETA.yml b/MYMETA.yml
deleted file mode 100644
index 56b283f..0000000
--- a/MYMETA.yml
+++ /dev/null
@@ -1,23 +0,0 @@
----
-abstract: 'Parse and create Quicken Interchange Format files'
-author:
-  - 'Matthew McGillis <matthew at mcgillis.org> & Phil Lobbes <phil at perkpartners.com>'
-build_requires:
-  ExtUtils::MakeMaker: 0
-configure_requires:
-  ExtUtils::MakeMaker: 0
-distribution_type: module
-dynamic_config: 0
-generated_by: 'ExtUtils::MakeMaker version 6.57_05'
-license: perl
-meta-spec:
-  url: http://module-build.sourceforge.net/META-spec-v1.4.html
-  version: 1.4
-name: Finance-QIF
-no_index:
-  directory:
-    - t
-    - inc
-requires:
-  IO::File: 1.11
-version: 3.02
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 82a2300..0000000
--- a/Makefile
+++ /dev/null
@@ -1,791 +0,0 @@
-# This Makefile is for the Finance::QIF extension to perl.
-#
-# It was generated automatically by MakeMaker version
-# 6.57_05 (Revision: 65705) from the contents of
-# Makefile.PL. Don't edit this file, edit Makefile.PL instead.
-#
-#       ANY CHANGES MADE HERE WILL BE LOST!
-#
-#   MakeMaker ARGV: (q[INSTALLDIRS=vendor])
-#
-
-#   MakeMaker Parameters:
-
-#     ABSTRACT_FROM => q[lib/Finance/QIF.pm]
-#     AUTHOR => [q[Matthew McGillis <matthew at mcgillis.org> & Phil Lobbes <phil at perkpartners.com>]]
-#     BUILD_REQUIRES => {  }
-#     LICENSE => q[perl]
-#     NAME => q[Finance::QIF]
-#     PREREQ_PM => { IO::File=>q[1.11] }
-#     VERSION_FROM => q[lib/Finance/QIF.pm]
-
-# --- MakeMaker post_initialize section:
-
-
-# --- MakeMaker const_config section:
-
-# These definitions are from config.sh (via /usr/lib/perl/5.14/Config.pm).
-# They may have been overridden via Makefile.PL or on the command line.
-AR = ar
-CC = cc
-CCCDLFLAGS = -fPIC
-CCDLFLAGS = -Wl,-E
-DLEXT = so
-DLSRC = dl_dlopen.xs
-EXE_EXT = 
-FULL_AR = /usr/bin/ar
-LD = cc
-LDDLFLAGS = -shared -O2 -g -L/usr/local/lib -fstack-protector
-LDFLAGS =  -fstack-protector -L/usr/local/lib
-LIBC = 
-LIB_EXT = .a
-OBJ_EXT = .o
-OSNAME = linux
-OSVERS = 2.6.32-5-amd64
-RANLIB = :
-SITELIBEXP = /usr/local/share/perl/5.14.2
-SITEARCHEXP = /usr/local/lib/perl/5.14.2
-SO = so
-VENDORARCHEXP = /usr/lib/perl5
-VENDORLIBEXP = /usr/share/perl5
-
-
-# --- MakeMaker constants section:
-AR_STATIC_ARGS = cr
-DIRFILESEP = /
-DFSEP = $(DIRFILESEP)
-NAME = Finance::QIF
-NAME_SYM = Finance_QIF
-VERSION = 3.02
-VERSION_MACRO = VERSION
-VERSION_SYM = 3_02
-DEFINE_VERSION = -D$(VERSION_MACRO)=\"$(VERSION)\"
-XS_VERSION = 3.02
-XS_VERSION_MACRO = XS_VERSION
-XS_DEFINE_VERSION = -D$(XS_VERSION_MACRO)=\"$(XS_VERSION)\"
-INST_ARCHLIB = blib/arch
-INST_SCRIPT = blib/script
-INST_BIN = blib/bin
-INST_LIB = blib/lib
-INST_MAN1DIR = blib/man1
-INST_MAN3DIR = blib/man3
-MAN1EXT = 1p
-MAN3EXT = 3pm
-INSTALLDIRS = vendor
-DESTDIR = 
-PREFIX = /usr
-PERLPREFIX = $(PREFIX)
-SITEPREFIX = $(PREFIX)/local
-VENDORPREFIX = $(PREFIX)
-INSTALLPRIVLIB = $(PERLPREFIX)/share/perl/5.14
-DESTINSTALLPRIVLIB = $(DESTDIR)$(INSTALLPRIVLIB)
-INSTALLSITELIB = $(SITEPREFIX)/share/perl/5.14.2
-DESTINSTALLSITELIB = $(DESTDIR)$(INSTALLSITELIB)
-INSTALLVENDORLIB = $(VENDORPREFIX)/share/perl5
-DESTINSTALLVENDORLIB = $(DESTDIR)$(INSTALLVENDORLIB)
-INSTALLARCHLIB = $(PERLPREFIX)/lib/perl/5.14
-DESTINSTALLARCHLIB = $(DESTDIR)$(INSTALLARCHLIB)
-INSTALLSITEARCH = $(SITEPREFIX)/lib/perl/5.14.2
-DESTINSTALLSITEARCH = $(DESTDIR)$(INSTALLSITEARCH)
-INSTALLVENDORARCH = $(VENDORPREFIX)/lib/perl5
-DESTINSTALLVENDORARCH = $(DESTDIR)$(INSTALLVENDORARCH)
-INSTALLBIN = $(PERLPREFIX)/bin
-DESTINSTALLBIN = $(DESTDIR)$(INSTALLBIN)
-INSTALLSITEBIN = $(SITEPREFIX)/bin
-DESTINSTALLSITEBIN = $(DESTDIR)$(INSTALLSITEBIN)
-INSTALLVENDORBIN = $(VENDORPREFIX)/bin
-DESTINSTALLVENDORBIN = $(DESTDIR)$(INSTALLVENDORBIN)
-INSTALLSCRIPT = $(PERLPREFIX)/bin
-DESTINSTALLSCRIPT = $(DESTDIR)$(INSTALLSCRIPT)
-INSTALLSITESCRIPT = $(SITEPREFIX)/bin
-DESTINSTALLSITESCRIPT = $(DESTDIR)$(INSTALLSITESCRIPT)
-INSTALLVENDORSCRIPT = $(VENDORPREFIX)/bin
-DESTINSTALLVENDORSCRIPT = $(DESTDIR)$(INSTALLVENDORSCRIPT)
-INSTALLMAN1DIR = $(PERLPREFIX)/share/man/man1
-DESTINSTALLMAN1DIR = $(DESTDIR)$(INSTALLMAN1DIR)
-INSTALLSITEMAN1DIR = $(SITEPREFIX)/man/man1
-DESTINSTALLSITEMAN1DIR = $(DESTDIR)$(INSTALLSITEMAN1DIR)
-INSTALLVENDORMAN1DIR = $(VENDORPREFIX)/share/man/man1
-DESTINSTALLVENDORMAN1DIR = $(DESTDIR)$(INSTALLVENDORMAN1DIR)
-INSTALLMAN3DIR = $(PERLPREFIX)/share/man/man3
-DESTINSTALLMAN3DIR = $(DESTDIR)$(INSTALLMAN3DIR)
-INSTALLSITEMAN3DIR = $(SITEPREFIX)/man/man3
-DESTINSTALLSITEMAN3DIR = $(DESTDIR)$(INSTALLSITEMAN3DIR)
-INSTALLVENDORMAN3DIR = $(VENDORPREFIX)/share/man/man3
-DESTINSTALLVENDORMAN3DIR = $(DESTDIR)$(INSTALLVENDORMAN3DIR)
-PERL_LIB = /usr/share/perl/5.14
-PERL_ARCHLIB = /usr/lib/perl/5.14
-LIBPERL_A = libperl.a
-FIRST_MAKEFILE = Makefile
-MAKEFILE_OLD = Makefile.old
-MAKE_APERL_FILE = Makefile.aperl
-PERLMAINCC = $(CC)
-PERL_INC = /usr/lib/perl/5.14/CORE
-PERL = /usr/bin/perl
-FULLPERL = /usr/bin/perl
-ABSPERL = $(PERL)
-PERLRUN = $(PERL)
-FULLPERLRUN = $(FULLPERL)
-ABSPERLRUN = $(ABSPERL)
-PERLRUNINST = $(PERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
-FULLPERLRUNINST = $(FULLPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
-ABSPERLRUNINST = $(ABSPERLRUN) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)"
-PERL_CORE = 0
-PERM_DIR = 755
-PERM_RW = 644
-PERM_RWX = 755
-
-MAKEMAKER   = /usr/share/perl/5.14/ExtUtils/MakeMaker.pm
-MM_VERSION  = 6.57_05
-MM_REVISION = 65705
-
-# FULLEXT = Pathname for extension directory (eg Foo/Bar/Oracle).
-# BASEEXT = Basename part of FULLEXT. May be just equal FULLEXT. (eg Oracle)
-# PARENT_NAME = NAME without BASEEXT and no trailing :: (eg Foo::Bar)
-# DLBASE  = Basename part of dynamic library. May be just equal BASEEXT.
-MAKE = make
-FULLEXT = Finance/QIF
-BASEEXT = QIF
-PARENT_NAME = Finance
-DLBASE = $(BASEEXT)
-VERSION_FROM = lib/Finance/QIF.pm
-OBJECT = 
-LDFROM = $(OBJECT)
-LINKTYPE = dynamic
-BOOTDEP = 
-
-# Handy lists of source code files:
-XS_FILES = 
-C_FILES  = 
-O_FILES  = 
-H_FILES  = 
-MAN1PODS = 
-MAN3PODS = lib/Finance/QIF.pm
-
-# Where is the Config information that we are using/depend on
-CONFIGDEP = $(PERL_ARCHLIB)$(DFSEP)Config.pm $(PERL_INC)$(DFSEP)config.h
-
-# Where to build things
-INST_LIBDIR      = $(INST_LIB)/Finance
-INST_ARCHLIBDIR  = $(INST_ARCHLIB)/Finance
-
-INST_AUTODIR     = $(INST_LIB)/auto/$(FULLEXT)
-INST_ARCHAUTODIR = $(INST_ARCHLIB)/auto/$(FULLEXT)
-
-INST_STATIC      = 
-INST_DYNAMIC     = 
-INST_BOOT        = 
-
-# Extra linker info
-EXPORT_LIST        = 
-PERL_ARCHIVE       = 
-PERL_ARCHIVE_AFTER = 
-
-
-TO_INST_PM = lib/Finance/QIF.pm
-
-PM_TO_BLIB = lib/Finance/QIF.pm \
-	blib/lib/Finance/QIF.pm
-
-
-# --- MakeMaker platform_constants section:
-MM_Unix_VERSION = 6.57_05
-PERL_MALLOC_DEF = -DPERL_EXTMALLOC_DEF -Dmalloc=Perl_malloc -Dfree=Perl_mfree -Drealloc=Perl_realloc -Dcalloc=Perl_calloc
-
-
-# --- MakeMaker tool_autosplit section:
-# Usage: $(AUTOSPLITFILE) FileToSplit AutoDirToSplitInto
-AUTOSPLITFILE = $(ABSPERLRUN)  -e 'use AutoSplit;  autosplit($$ARGV[0], $$ARGV[1], 0, 1, 1)' --
-
-
-
-# --- MakeMaker tool_xsubpp section:
-
-
-# --- MakeMaker tools_other section:
-SHELL = /bin/sh
-CHMOD = chmod
-CP = cp
-MV = mv
-NOOP = $(TRUE)
-NOECHO = @
-RM_F = rm -f
-RM_RF = rm -rf
-TEST_F = test -f
-TOUCH = touch
-UMASK_NULL = umask 0
-DEV_NULL = > /dev/null 2>&1
-MKPATH = $(ABSPERLRUN) -MExtUtils::Command -e 'mkpath' --
-EQUALIZE_TIMESTAMP = $(ABSPERLRUN) -MExtUtils::Command -e 'eqtime' --
-FALSE = false
-TRUE = true
-ECHO = echo
-ECHO_N = echo -n
-UNINST = 0
-VERBINST = 0
-MOD_INSTALL = $(ABSPERLRUN) -MExtUtils::Install -e 'install([ from_to => {@ARGV}, verbose => '\''$(VERBINST)'\'', uninstall_shadows => '\''$(UNINST)'\'', dir_mode => '\''$(PERM_DIR)'\'' ]);' --
-DOC_INSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'perllocal_install' --
-UNINSTALL = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'uninstall' --
-WARN_IF_OLD_PACKLIST = $(ABSPERLRUN) -MExtUtils::Command::MM -e 'warn_if_old_packlist' --
-MACROSTART = 
-MACROEND = 
-USEMAKEFILE = -f
-FIXIN = $(ABSPERLRUN) -MExtUtils::MY -e 'MY->fixin(shift)' --
-
-
-# --- MakeMaker makemakerdflt section:
-makemakerdflt : all
-	$(NOECHO) $(NOOP)
-
-
-# --- MakeMaker dist section:
-TAR = tar
-TARFLAGS = cvf
-ZIP = zip
-ZIPFLAGS = -r
-COMPRESS = gzip --best
-SUFFIX = .gz
-SHAR = shar
-PREOP = $(NOECHO) $(NOOP)
-POSTOP = $(NOECHO) $(NOOP)
-TO_UNIX = $(NOECHO) $(NOOP)
-CI = ci -u
-RCS_LABEL = rcs -Nv$(VERSION_SYM): -q
-DIST_CP = best
-DIST_DEFAULT = tardist
-DISTNAME = Finance-QIF
-DISTVNAME = Finance-QIF-3.02
-
-
-# --- MakeMaker macro section:
-
-
-# --- MakeMaker depend section:
-
-
-# --- MakeMaker cflags section:
-
-
-# --- MakeMaker const_loadlibs section:
-
-
-# --- MakeMaker const_cccmd section:
-
-
-# --- MakeMaker post_constants section:
-
-
-# --- MakeMaker pasthru section:
-
-PASTHRU = LIBPERL_A="$(LIBPERL_A)"\
-	LINKTYPE="$(LINKTYPE)"\
-	PREFIX="$(PREFIX)"
-
-
-# --- MakeMaker special_targets section:
-.SUFFIXES : .xs .c .C .cpp .i .s .cxx .cc $(OBJ_EXT)
-
-.PHONY: all config static dynamic test linkext manifest blibdirs clean realclean disttest distdir
-
-
-
-# --- MakeMaker c_o section:
-
-
-# --- MakeMaker xs_c section:
-
-
-# --- MakeMaker xs_o section:
-
-
-# --- MakeMaker top_targets section:
-all :: pure_all manifypods
-	$(NOECHO) $(NOOP)
-
-
-pure_all :: config pm_to_blib subdirs linkext
-	$(NOECHO) $(NOOP)
-
-subdirs :: $(MYEXTLIB)
-	$(NOECHO) $(NOOP)
-
-config :: $(FIRST_MAKEFILE) blibdirs
-	$(NOECHO) $(NOOP)
-
-help :
-	perldoc ExtUtils::MakeMaker
-
-
-# --- MakeMaker blibdirs section:
-blibdirs : $(INST_LIBDIR)$(DFSEP).exists $(INST_ARCHLIB)$(DFSEP).exists $(INST_AUTODIR)$(DFSEP).exists $(INST_ARCHAUTODIR)$(DFSEP).exists $(INST_BIN)$(DFSEP).exists $(INST_SCRIPT)$(DFSEP).exists $(INST_MAN1DIR)$(DFSEP).exists $(INST_MAN3DIR)$(DFSEP).exists
-	$(NOECHO) $(NOOP)
-
-# Backwards compat with 6.18 through 6.25
-blibdirs.ts : blibdirs
-	$(NOECHO) $(NOOP)
-
-$(INST_LIBDIR)$(DFSEP).exists :: Makefile.PL
-	$(NOECHO) $(MKPATH) $(INST_LIBDIR)
-	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_LIBDIR)
-	$(NOECHO) $(TOUCH) $(INST_LIBDIR)$(DFSEP).exists
-
-$(INST_ARCHLIB)$(DFSEP).exists :: Makefile.PL
-	$(NOECHO) $(MKPATH) $(INST_ARCHLIB)
-	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHLIB)
-	$(NOECHO) $(TOUCH) $(INST_ARCHLIB)$(DFSEP).exists
-
-$(INST_AUTODIR)$(DFSEP).exists :: Makefile.PL
-	$(NOECHO) $(MKPATH) $(INST_AUTODIR)
-	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_AUTODIR)
-	$(NOECHO) $(TOUCH) $(INST_AUTODIR)$(DFSEP).exists
-
-$(INST_ARCHAUTODIR)$(DFSEP).exists :: Makefile.PL
-	$(NOECHO) $(MKPATH) $(INST_ARCHAUTODIR)
-	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_ARCHAUTODIR)
-	$(NOECHO) $(TOUCH) $(INST_ARCHAUTODIR)$(DFSEP).exists
-
-$(INST_BIN)$(DFSEP).exists :: Makefile.PL
-	$(NOECHO) $(MKPATH) $(INST_BIN)
-	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_BIN)
-	$(NOECHO) $(TOUCH) $(INST_BIN)$(DFSEP).exists
-
-$(INST_SCRIPT)$(DFSEP).exists :: Makefile.PL
-	$(NOECHO) $(MKPATH) $(INST_SCRIPT)
-	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_SCRIPT)
-	$(NOECHO) $(TOUCH) $(INST_SCRIPT)$(DFSEP).exists
-
-$(INST_MAN1DIR)$(DFSEP).exists :: Makefile.PL
-	$(NOECHO) $(MKPATH) $(INST_MAN1DIR)
-	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN1DIR)
-	$(NOECHO) $(TOUCH) $(INST_MAN1DIR)$(DFSEP).exists
-
-$(INST_MAN3DIR)$(DFSEP).exists :: Makefile.PL
-	$(NOECHO) $(MKPATH) $(INST_MAN3DIR)
-	$(NOECHO) $(CHMOD) $(PERM_DIR) $(INST_MAN3DIR)
-	$(NOECHO) $(TOUCH) $(INST_MAN3DIR)$(DFSEP).exists
-
-
-
-# --- MakeMaker linkext section:
-
-linkext :: $(LINKTYPE)
-	$(NOECHO) $(NOOP)
-
-
-# --- MakeMaker dlsyms section:
-
-
-# --- MakeMaker dynamic section:
-
-dynamic :: $(FIRST_MAKEFILE) $(INST_DYNAMIC) $(INST_BOOT)
-	$(NOECHO) $(NOOP)
-
-
-# --- MakeMaker dynamic_bs section:
-
-BOOTSTRAP =
-
-
-# --- MakeMaker dynamic_lib section:
-
-
-# --- MakeMaker static section:
-
-## $(INST_PM) has been moved to the all: target.
-## It remains here for awhile to allow for old usage: "make static"
-static :: $(FIRST_MAKEFILE) $(INST_STATIC)
-	$(NOECHO) $(NOOP)
-
-
-# --- MakeMaker static_lib section:
-
-
-# --- MakeMaker manifypods section:
-
-POD2MAN_EXE = $(PERLRUN) "-MExtUtils::Command::MM" -e pod2man "--"
-POD2MAN = $(POD2MAN_EXE)
-
-
-manifypods : pure_all  \
-	lib/Finance/QIF.pm
-	$(NOECHO) $(POD2MAN) --section=$(MAN3EXT) --perm_rw=$(PERM_RW) \
-	  lib/Finance/QIF.pm $(INST_MAN3DIR)/Finance::QIF.$(MAN3EXT) 
-
-
-
-
-# --- MakeMaker processPL section:
-
-
-# --- MakeMaker installbin section:
-
-
-# --- MakeMaker subdirs section:
-
-# none
-
-# --- MakeMaker clean_subdirs section:
-clean_subdirs :
-	$(NOECHO) $(NOOP)
-
-
-# --- MakeMaker clean section:
-
-# Delete temporary files but do not touch installed files. We don't delete
-# the Makefile here so a later make realclean still has a makefile to use.
-
-clean :: clean_subdirs
-	- $(RM_F) \
-	  *$(LIB_EXT) core \
-	  core.[0-9] $(INST_ARCHAUTODIR)/extralibs.all \
-	  core.[0-9][0-9] $(BASEEXT).bso \
-	  pm_to_blib.ts core.[0-9][0-9][0-9][0-9] \
-	  MYMETA.yml $(BASEEXT).x \
-	  $(BOOTSTRAP) perl$(EXE_EXT) \
-	  tmon.out *$(OBJ_EXT) \
-	  pm_to_blib $(INST_ARCHAUTODIR)/extralibs.ld \
-	  blibdirs.ts core.[0-9][0-9][0-9][0-9][0-9] \
-	  *perl.core core.*perl.*.? \
-	  $(MAKE_APERL_FILE) perl \
-	  $(BASEEXT).def core.[0-9][0-9][0-9] \
-	  mon.out lib$(BASEEXT).def \
-	  perlmain.c perl.exe \
-	  so_locations $(BASEEXT).exp 
-	- $(RM_RF) \
-	  blib 
-	- $(MV) $(FIRST_MAKEFILE) $(MAKEFILE_OLD) $(DEV_NULL)
-
-
-# --- MakeMaker realclean_subdirs section:
-realclean_subdirs :
-	$(NOECHO) $(NOOP)
-
-
-# --- MakeMaker realclean section:
-# Delete temporary files (via clean) and also delete dist files
-realclean purge ::  clean realclean_subdirs
-	- $(RM_F) \
-	  $(MAKEFILE_OLD) $(FIRST_MAKEFILE) 
-	- $(RM_RF) \
-	  $(DISTVNAME) 
-
-
-# --- MakeMaker metafile section:
-metafile : create_distdir
-	$(NOECHO) $(ECHO) Generating META.yml
-	$(NOECHO) $(ECHO) '--- #YAML:1.0' > META_new.yml
-	$(NOECHO) $(ECHO) 'name:               Finance-QIF' >> META_new.yml
-	$(NOECHO) $(ECHO) 'version:            3.02' >> META_new.yml
-	$(NOECHO) $(ECHO) 'abstract:           Parse and create Quicken Interchange Format files' >> META_new.yml
-	$(NOECHO) $(ECHO) 'author:' >> META_new.yml
-	$(NOECHO) $(ECHO) '    - Matthew McGillis <matthew at mcgillis.org> & Phil Lobbes <phil at perkpartners.com>' >> META_new.yml
-	$(NOECHO) $(ECHO) 'license:            perl' >> META_new.yml
-	$(NOECHO) $(ECHO) 'distribution_type:  module' >> META_new.yml
-	$(NOECHO) $(ECHO) 'configure_requires:' >> META_new.yml
-	$(NOECHO) $(ECHO) '    ExtUtils::MakeMaker:  0' >> META_new.yml
-	$(NOECHO) $(ECHO) 'build_requires:' >> META_new.yml
-	$(NOECHO) $(ECHO) '    ExtUtils::MakeMaker:  0' >> META_new.yml
-	$(NOECHO) $(ECHO) 'requires:' >> META_new.yml
-	$(NOECHO) $(ECHO) '    IO::File:  1.11' >> META_new.yml
-	$(NOECHO) $(ECHO) 'no_index:' >> META_new.yml
-	$(NOECHO) $(ECHO) '    directory:' >> META_new.yml
-	$(NOECHO) $(ECHO) '        - t' >> META_new.yml
-	$(NOECHO) $(ECHO) '        - inc' >> META_new.yml
-	$(NOECHO) $(ECHO) 'generated_by:       ExtUtils::MakeMaker version 6.57_05' >> META_new.yml
-	$(NOECHO) $(ECHO) 'meta-spec:' >> META_new.yml
-	$(NOECHO) $(ECHO) '    url:      http://module-build.sourceforge.net/META-spec-v1.4.html' >> META_new.yml
-	$(NOECHO) $(ECHO) '    version:  1.4' >> META_new.yml
-	-$(NOECHO) $(MV) META_new.yml $(DISTVNAME)/META.yml
-
-
-# --- MakeMaker signature section:
-signature :
-	cpansign -s
-
-
-# --- MakeMaker dist_basics section:
-distclean :: realclean distcheck
-	$(NOECHO) $(NOOP)
-
-distcheck :
-	$(PERLRUN) "-MExtUtils::Manifest=fullcheck" -e fullcheck
-
-skipcheck :
-	$(PERLRUN) "-MExtUtils::Manifest=skipcheck" -e skipcheck
-
-manifest :
-	$(PERLRUN) "-MExtUtils::Manifest=mkmanifest" -e mkmanifest
-
-veryclean : realclean
-	$(RM_F) *~ */*~ *.orig */*.orig *.bak */*.bak *.old */*.old 
-
-
-
-# --- MakeMaker dist_core section:
-
-dist : $(DIST_DEFAULT) $(FIRST_MAKEFILE)
-	$(NOECHO) $(ABSPERLRUN) -l -e 'print '\''Warning: Makefile possibly out of date with $(VERSION_FROM)'\''' \
-	  -e '    if -e '\''$(VERSION_FROM)'\'' and -M '\''$(VERSION_FROM)'\'' < -M '\''$(FIRST_MAKEFILE)'\'';' --
-
-tardist : $(DISTVNAME).tar$(SUFFIX)
-	$(NOECHO) $(NOOP)
-
-uutardist : $(DISTVNAME).tar$(SUFFIX)
-	uuencode $(DISTVNAME).tar$(SUFFIX) $(DISTVNAME).tar$(SUFFIX) > $(DISTVNAME).tar$(SUFFIX)_uu
-
-$(DISTVNAME).tar$(SUFFIX) : distdir
-	$(PREOP)
-	$(TO_UNIX)
-	$(TAR) $(TARFLAGS) $(DISTVNAME).tar $(DISTVNAME)
-	$(RM_RF) $(DISTVNAME)
-	$(COMPRESS) $(DISTVNAME).tar
-	$(POSTOP)
-
-zipdist : $(DISTVNAME).zip
-	$(NOECHO) $(NOOP)
-
-$(DISTVNAME).zip : distdir
-	$(PREOP)
-	$(ZIP) $(ZIPFLAGS) $(DISTVNAME).zip $(DISTVNAME)
-	$(RM_RF) $(DISTVNAME)
-	$(POSTOP)
-
-shdist : distdir
-	$(PREOP)
-	$(SHAR) $(DISTVNAME) > $(DISTVNAME).shar
-	$(RM_RF) $(DISTVNAME)
-	$(POSTOP)
-
-
-# --- MakeMaker distdir section:
-create_distdir :
-	$(RM_RF) $(DISTVNAME)
-	$(PERLRUN) "-MExtUtils::Manifest=manicopy,maniread" \
-		-e "manicopy(maniread(),'$(DISTVNAME)', '$(DIST_CP)');"
-
-distdir : create_distdir distmeta 
-	$(NOECHO) $(NOOP)
-
-
-
-# --- MakeMaker dist_test section:
-disttest : distdir
-	cd $(DISTVNAME) && $(ABSPERLRUN) Makefile.PL "INSTALLDIRS=vendor"
-	cd $(DISTVNAME) && $(MAKE) $(PASTHRU)
-	cd $(DISTVNAME) && $(MAKE) test $(PASTHRU)
-
-
-
-# --- MakeMaker dist_ci section:
-
-ci :
-	$(PERLRUN) "-MExtUtils::Manifest=maniread" \
-	  -e "@all = keys %{ maniread() };" \
-	  -e "print(qq{Executing $(CI) @all\n}); system(qq{$(CI) @all});" \
-	  -e "print(qq{Executing $(RCS_LABEL) ...\n}); system(qq{$(RCS_LABEL) @all});"
-
-
-# --- MakeMaker distmeta section:
-distmeta : create_distdir metafile
-	$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{META.yml} => q{Module meta-data (added by MakeMaker)}}) } ' \
-	  -e '    or print "Could not add META.yml to MANIFEST: $${'\''@'\''}\n"' --
-
-
-
-# --- MakeMaker distsignature section:
-distsignature : create_distdir
-	$(NOECHO) cd $(DISTVNAME) && $(ABSPERLRUN) -MExtUtils::Manifest=maniadd -e 'eval { maniadd({q{SIGNATURE} => q{Public-key signature (added by MakeMaker)}}) } ' \
-	  -e '    or print "Could not add SIGNATURE to MANIFEST: $${'\''@'\''}\n"' --
-	$(NOECHO) cd $(DISTVNAME) && $(TOUCH) SIGNATURE
-	cd $(DISTVNAME) && cpansign -s
-
-
-
-# --- MakeMaker install section:
-
-install :: pure_install doc_install
-	$(NOECHO) $(NOOP)
-
-install_perl :: pure_perl_install doc_perl_install
-	$(NOECHO) $(NOOP)
-
-install_site :: pure_site_install doc_site_install
-	$(NOECHO) $(NOOP)
-
-install_vendor :: pure_vendor_install doc_vendor_install
-	$(NOECHO) $(NOOP)
-
-pure_install :: pure_$(INSTALLDIRS)_install
-	$(NOECHO) $(NOOP)
-
-doc_install :: doc_$(INSTALLDIRS)_install
-	$(NOECHO) $(NOOP)
-
-pure__install : pure_site_install
-	$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
-
-doc__install : doc_site_install
-	$(NOECHO) $(ECHO) INSTALLDIRS not defined, defaulting to INSTALLDIRS=site
-
-pure_perl_install :: all
-	$(NOECHO) umask 022; $(MOD_INSTALL) \
-		$(INST_LIB) $(DESTINSTALLPRIVLIB) \
-		$(INST_ARCHLIB) $(DESTINSTALLARCHLIB) \
-		$(INST_BIN) $(DESTINSTALLBIN) \
-		$(INST_SCRIPT) $(DESTINSTALLSCRIPT) \
-		$(INST_MAN1DIR) $(DESTINSTALLMAN1DIR) \
-		$(INST_MAN3DIR) $(DESTINSTALLMAN3DIR)
-	$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
-		$(SITEARCHEXP)/auto/$(FULLEXT)
-
-
-pure_site_install :: all
-	$(NOECHO) umask 02; $(MOD_INSTALL) \
-		read $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist \
-		write $(DESTINSTALLSITEARCH)/auto/$(FULLEXT)/.packlist \
-		$(INST_LIB) $(DESTINSTALLSITELIB) \
-		$(INST_ARCHLIB) $(DESTINSTALLSITEARCH) \
-		$(INST_BIN) $(DESTINSTALLSITEBIN) \
-		$(INST_SCRIPT) $(DESTINSTALLSITESCRIPT) \
-		$(INST_MAN1DIR) $(DESTINSTALLSITEMAN1DIR) \
-		$(INST_MAN3DIR) $(DESTINSTALLSITEMAN3DIR)
-	$(NOECHO) $(WARN_IF_OLD_PACKLIST) \
-		$(PERL_ARCHLIB)/auto/$(FULLEXT)
-
-pure_vendor_install :: all
-	$(NOECHO) umask 022; $(MOD_INSTALL) \
-		$(INST_LIB) $(DESTINSTALLVENDORLIB) \
-		$(INST_ARCHLIB) $(DESTINSTALLVENDORARCH) \
-		$(INST_BIN) $(DESTINSTALLVENDORBIN) \
-		$(INST_SCRIPT) $(DESTINSTALLVENDORSCRIPT) \
-		$(INST_MAN1DIR) $(DESTINSTALLVENDORMAN1DIR) \
-		$(INST_MAN3DIR) $(DESTINSTALLVENDORMAN3DIR)
-
-doc_perl_install :: all
-
-doc_site_install :: all
-	$(NOECHO) $(ECHO) Appending installation info to $(DESTINSTALLSITEARCH)/perllocal.pod
-	-$(NOECHO) umask 02; $(MKPATH) $(DESTINSTALLSITEARCH)
-	-$(NOECHO) umask 02; $(DOC_INSTALL) \
-		"Module" "$(NAME)" \
-		"installed into" "$(INSTALLSITELIB)" \
-		LINKTYPE "$(LINKTYPE)" \
-		VERSION "$(VERSION)" \
-		EXE_FILES "$(EXE_FILES)" \
-		>> $(DESTINSTALLSITEARCH)/perllocal.pod
-
-doc_vendor_install :: all
-
-
-uninstall :: uninstall_from_$(INSTALLDIRS)dirs
-	$(NOECHO) $(NOOP)
-
-uninstall_from_perldirs ::
-
-uninstall_from_sitedirs ::
-	$(NOECHO) $(UNINSTALL) $(SITEARCHEXP)/auto/$(FULLEXT)/.packlist
-
-uninstall_from_vendordirs ::
-
-
-
-# --- MakeMaker force section:
-# Phony target to force checking subdirectories.
-FORCE :
-	$(NOECHO) $(NOOP)
-
-
-# --- MakeMaker perldepend section:
-
-
-# --- MakeMaker makefile section:
-# We take a very conservative approach here, but it's worth it.
-# We move Makefile to Makefile.old here to avoid gnu make looping.
-$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
-	$(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?"
-	$(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile..."
-	-$(NOECHO) $(RM_F) $(MAKEFILE_OLD)
-	-$(NOECHO) $(MV)   $(FIRST_MAKEFILE) $(MAKEFILE_OLD)
-	- $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL)
-	$(PERLRUN) Makefile.PL "INSTALLDIRS=vendor"
-	$(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
-	$(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command.  <=="
-	$(FALSE)
-
-
-
-# --- MakeMaker staticmake section:
-
-# --- MakeMaker makeaperl section ---
-MAP_TARGET    = perl
-FULLPERL      = /usr/bin/perl
-
-$(MAP_TARGET) :: static $(MAKE_APERL_FILE)
-	$(MAKE) $(USEMAKEFILE) $(MAKE_APERL_FILE) $@
-
-$(MAKE_APERL_FILE) : $(FIRST_MAKEFILE) pm_to_blib
-	$(NOECHO) $(ECHO) Writing \"$(MAKE_APERL_FILE)\" for this $(MAP_TARGET)
-	$(NOECHO) $(PERLRUNINST) \
-		Makefile.PL DIR= \
-		MAKEFILE=$(MAKE_APERL_FILE) LINKTYPE=static \
-		MAKEAPERL=1 NORECURS=1 CCCDLFLAGS= \
-		INSTALLDIRS=vendor
-
-
-# --- MakeMaker test section:
-
-TEST_VERBOSE=0
-TEST_TYPE=test_$(LINKTYPE)
-TEST_FILE = test.pl
-TEST_FILES = t/*.t
-TESTDB_SW = -d
-
-testdb :: testdb_$(LINKTYPE)
-
-test :: $(TEST_TYPE) subdirs-test
-
-subdirs-test ::
-	$(NOECHO) $(NOOP)
-
-
-test_dynamic :: pure_all
-	PERL_DL_NONLAZY=1 $(FULLPERLRUN) "-MExtUtils::Command::MM" "-e" "test_harness($(TEST_VERBOSE), '$(INST_LIB)', '$(INST_ARCHLIB)')" $(TEST_FILES)
-
-testdb_dynamic :: pure_all
-	PERL_DL_NONLAZY=1 $(FULLPERLRUN) $(TESTDB_SW) "-I$(INST_LIB)" "-I$(INST_ARCHLIB)" $(TEST_FILE)
-
-test_ : test_dynamic
-
-test_static :: test_dynamic
-testdb_static :: testdb_dynamic
-
-
-# --- MakeMaker ppd section:
-# Creates a PPD (Perl Package Description) for a binary distribution.
-ppd :
-	$(NOECHO) $(ECHO) '<SOFTPKG NAME="$(DISTNAME)" VERSION="3.02">' > $(DISTNAME).ppd
-	$(NOECHO) $(ECHO) '    <ABSTRACT>Parse and create Quicken Interchange Format files</ABSTRACT>' >> $(DISTNAME).ppd
-	$(NOECHO) $(ECHO) '    <AUTHOR>Matthew McGillis <matthew at mcgillis.org> & Phil Lobbes <phil at perkpartners.com></AUTHOR>' >> $(DISTNAME).ppd
-	$(NOECHO) $(ECHO) '    <IMPLEMENTATION>' >> $(DISTNAME).ppd
-	$(NOECHO) $(ECHO) '        <REQUIRE NAME="IO::File" VERSION="1.11" />' >> $(DISTNAME).ppd
-	$(NOECHO) $(ECHO) '        <ARCHITECTURE NAME="x86_64-linux-gnu-thread-multi-5.14" />' >> $(DISTNAME).ppd
-	$(NOECHO) $(ECHO) '        <CODEBASE HREF="" />' >> $(DISTNAME).ppd
-	$(NOECHO) $(ECHO) '    </IMPLEMENTATION>' >> $(DISTNAME).ppd
-	$(NOECHO) $(ECHO) '</SOFTPKG>' >> $(DISTNAME).ppd
-
-
-# --- MakeMaker pm_to_blib section:
-
-pm_to_blib : $(FIRST_MAKEFILE) $(TO_INST_PM)
-	$(NOECHO) $(ABSPERLRUN) -MExtUtils::Install -e 'pm_to_blib({@ARGV}, '\''$(INST_LIB)/auto'\'', q[$(PM_FILTER)], '\''$(PERM_DIR)'\'')' -- \
-	  lib/Finance/QIF.pm blib/lib/Finance/QIF.pm 
-	$(NOECHO) $(TOUCH) pm_to_blib
-
-
-# --- MakeMaker selfdocument section:
-
-
-# --- MakeMaker postamble section:
-
-
-# End.
diff --git a/blib/arch/.exists b/blib/arch/.exists
deleted file mode 100644
index e69de29..0000000
diff --git a/blib/arch/auto/Finance/QIF/.exists b/blib/arch/auto/Finance/QIF/.exists
deleted file mode 100644
index e69de29..0000000
diff --git a/blib/bin/.exists b/blib/bin/.exists
deleted file mode 100644
index e69de29..0000000
diff --git a/blib/lib/Finance/.exists b/blib/lib/Finance/.exists
deleted file mode 100644
index e69de29..0000000
diff --git a/blib/lib/Finance/QIF.pm b/blib/lib/Finance/QIF.pm
deleted file mode 100644
index aaf0911..0000000
--- a/blib/lib/Finance/QIF.pm
+++ /dev/null
@@ -1,1358 +0,0 @@
-package Finance::QIF;
-
-use 5.006;
-use strict;
-use warnings;
-use Carp;
-use IO::File;
-
-our $VERSION = '3.02';
-$VERSION = eval $VERSION;
-
-my %noninvestment = (
-    "D" => "date",
-    "T" => "transaction",
-    "U" => "total",         #Quicken 2005 added this which is usually the same
-                            #as T but can sometimes be higher.
-    "C" => "status",
-    "N" => "number",
-    "P" => "payee",
-    "M" => "memo",
-    "A" => "address",
-    "L" => "category",
-    "S" => "splits"
-);
-
-my %split = (
-    "S" => "category",
-    "E" => "memo",
-    '$' => "amount"
-);
-
-my %investment = (
-    "D" => "date",
-    "N" => "action",
-    "Y" => "security",
-    "I" => "price",
-    "Q" => "quantity",
-    "T" => "transaction",
-    "U" => "total",         #Quicken 2005 added this which is usually the same
-                            #as T but can sometimes be higher.
-    "C" => "status",
-    "P" => "text",
-    "M" => "memo",
-    "O" => "commission",
-    "L" => "account",
-    '$' => "amount"
-);
-
-my %account = (
-    "N" => "name",
-    "D" => "description",
-    "L" => "limit",
-    "X" => "tax",
-    "A" => "note",
-    "T" => "type",
-    "B" => "balance"
-);
-
-my %category = (
-    "N" => "name",
-    "D" => "description",
-    "B" => "budget",
-    "E" => "expense",
-    "I" => "income",
-    "T" => "tax",
-    "R" => "schedule"
-);
-
-my %class = (
-    "N" => "name",
-    "D" => "description"
-);
-
-my %memorized = (
-    "K" => "type",
-    "T" => "transaction",
-    "U" => "total",        #Quicken 2005 added this which is usually the same as
-                           #as T but can sometimes be higher.
-    "C" => "status",
-    "P" => "payee",
-    "M" => "memo",
-    "A" => "address",
-    "L" => "category",
-    "S" => "splits",
-    "N" => "action",       #Quicken 2006 added N, Y, I, Q, $ for investment
-    "Y" => "security",
-    "I" => "price",
-    "Q" => "quantity",
-    '$' => "amount",
-    "1" => "first",
-    "2" => "years",
-    "3" => "made",
-    "4" => "periods",
-    "5" => "interest",
-    "6" => "balance",
-    "7" => "loan"
-);
-
-my %security = (
-    "N" => "security",
-    "S" => "symbol",
-    "T" => "type",
-    "G" => "goal",
-);
-
-my %budget = (
-    "N" => "name",
-    "D" => "description",
-    "E" => "expense",
-    "I" => "income",
-    "T" => "tax",
-    "R" => "schedule",
-    "B" => "budget"
-);
-
-my %payee = (
-    "P" => "name",
-    "A" => "address",
-    "C" => "city",
-    "S" => "state",
-    "Z" => "zip",
-    "Y" => "country",
-    "N" => "phone",
-    "#" => "account"
-);
-
-my %prices = (
-    "S" => "symbol",
-    "P" => "price"
-);
-
-my %price = (
-    "C" => "close",
-    "D" => "date",
-    "X" => "max",
-    "I" => "min",
-    "V" => "volume"
-);
-
-my %nofields = ();
-
-my %header = (
-    "Type:Bank"         => \%noninvestment,
-    "Type:Cash"         => \%noninvestment,
-    "Type:CCard"        => \%noninvestment,
-    "Type:Invst"        => \%investment,
-    "Type:Oth A"        => \%noninvestment,
-    "Type:Oth L"        => \%noninvestment,
-    "Account"           => \%account,
-    "Type:Cat"          => \%category,
-    "Type:Class"        => \%class,
-    "Type:Memorized"    => \%memorized,
-    "Type:Security"     => \%security,
-    "Type:Budget"       => \%budget,
-    "Type:Payee"        => \%payee,
-    "Type:Prices"       => \%prices,
-    "Option:AutoSwitch" => \%nofields,
-    "Option:AllXfr"     => \%nofields,
-    "Clear:AutoSwitch"  => \%nofields
-);
-
-sub new {
-    my $class = shift;
-    my %opt   = @_;
-    my $self  = {};
-
-    $self->{debug}            = $opt{debug}            || 0;
-    $self->{autodetect}       = $opt{autodetect}       || 0;
-    $self->{trim_white_space} = $opt{trim_white_space} || 0;
-    $self->{record_separator} = $opt{record_separator} || $/;
-
-    bless( $self, $class );
-
-    if ( $opt{file} ) {
-        $self->file( $opt{file} );
-        $self->open;
-    }
-    return $self;
-}
-
-sub file {
-    my $self = shift;
-    if (@_) {
-        my @file = ( ref( $_[0] ) eq "ARRAY" ? @{ shift @_ } : (), @_ );
-        $self->{file} = [@file];
-    }
-    if ( $self->{file} ) {
-        return wantarray ? @{ $self->{file} } : $self->{file}->[0];
-    }
-    else {
-        return undef;
-    }
-}
-
-sub record_separator {
-    my $self = shift;
-    return $self->{record_separator};
-}
-
-sub _filehandle {
-    my $self = shift;
-    if (@_) {
-        my @args = @_;
-        $self->{_filehandle} = IO::File->new(@args)
-          or croak("Failed to open file '$args[0]': $!");
-        binmode( $self->{_filehandle} );
-        $self->{_linecount} = 0;
-    }
-    if ( !$self->{_filehandle} ) {
-        croak("No filehandle available");
-    }
-    return $self->{_filehandle};
-}
-
-sub open {
-    my $self = shift;
-    if (@_) {
-        $self->file(@_);
-    }
-    if ( $self->file ) {
-        $self->_filehandle( $self->file );
-        if ( $self->{autodetect} ) {
-            if ( $self->_filehandle->seek( -2, 2 ) ) {
-                my $buffer = "";
-                $self->_filehandle->read( $buffer, 2 );
-                if ( $buffer eq "\015\012" ) {
-                    $self->{record_separator} = "\015\012";
-                }
-                elsif ( $buffer =~ /\012$/ ) {
-                    $self->{record_separator} = "\012";
-                }
-                elsif ( $buffer =~ /\015$/ ) {
-                    $self->{record_separator} = "\015";
-                }
-            }
-        }
-        $self->reset();
-    }
-    else {
-        croak("No file specified");
-    }
-}
-
-sub next {
-    my $self = shift;
-    my %object;
-    my $continue = 1;
-    my $csplit;    # Need to keep track of current split for adding split values
-    if ( $self->_filehandle->eof ) {
-        return undef;
-    }
-    if ( exists( $self->{header} ) ) {
-        $object{header} = $self->{header};
-    }
-    while ( !$self->_filehandle->eof && $continue ) {
-        my $line = $self->_getline;
-        next if ( $line =~ /^\s*$/ );
-        my ( $field, $value ) = $self->_parseline($line);
-        if ( $field eq '!' ) {
-            $value =~ s/\s+$//;    # Headers sometimes have trailing white space
-            $self->{header} = $value;
-            $object{header} = $value;
-            if ( !exists( $header{$value} ) ) {
-                $self->_warning("Unknown header format '$value'");
-            }
-        }
-        else {
-            if ( $field eq '^' ) {
-                $continue = 0;
-            }
-            else {
-                if (
-                    !exists( $header{ $object{header} } )
-                    && !(
-                        exists( $header{"split"} )
-                        && (   $object{header} eq "noninvestment"
-                            || $object{header} eq "memorized" )
-                    )
-                  )
-                {
-                    $self->_warning(
-                        "Unknown header '$object{header}' can't process line");
-                }
-                elsif ( $object{header} eq "Type:Prices" ) {
-                    $object{"symbol"} = $field;
-                    push( @{ $object{"prices"} }, $value );
-                }
-                elsif ($field eq 'A'
-                    && $header{ $object{header} }{$field} eq "address" )
-                {
-                    if ( $self->{header} eq "Type:Payee" ) {
-
-                        # The address fields are numbered for this record type
-                        if ( length($value) == 0 ) {
-                            $self->_warning( 'Improper address record for '
-                                  . 'this record type' );
-                        }
-                        else {
-                            $value = substr( $value, 1 );
-                        }
-                    }
-                    if ( exists( $object{ $header{ $object{header} }{$field} } )
-                        && $object{ $header{ $object{header} }{$field} } ne "" )
-                    {
-                        $object{ $header{ $object{header} }{$field} } .= "\n";
-                    }
-                    $object{ $header{ $object{header} }{$field} } .= $value;
-                }
-                elsif ($field eq 'S'
-                    && $header{ $object{header} }{$field} eq "splits" )
-                {
-                    my %mysplit;    # We assume "S" always appears first
-                    $mysplit{ $split{$field} } = $value;
-                    push( @{ $object{splits} }, \%mysplit );
-                    $csplit = \%mysplit;
-                }
-                elsif ( ( $field eq 'E' || $field eq '$' ) && $csplit ) {
-
-                    # this currently assumes the "S" was found first
-                    $csplit->{ $split{$field} } = $value;
-                }
-                elsif ($field eq 'B'
-                    && $header{ $object{header} }{$field} eq "budget" )
-                {
-                    push( @{ $object{budget} }, $value );
-                }
-                elsif ( exists( $header{ $object{header} }{$field} ) ) {
-                    $object{ $header{ $object{header} }{$field} } = $value;
-                }
-                else {
-                    $self->_warning("Unknown field '$field'");
-                }
-            }
-        }
-    }
-
-    # Must check that we have a valid record to return
-    if ( scalar( keys %object ) > 1 ) {
-        return \%object;
-    }
-    else {
-        return undef;
-    }
-}
-
-sub _parseline {
-    my $self = shift;
-    my $line = shift;
-    my @result;
-    if (   $line !~ /^!/
-        && exists( $self->{header} )
-        && $self->{header} eq "Type:Prices" )
-    {
-        my %price;
-        $line =~ s/\"//g;
-        my @data = split( ",", $line );
-        $result[0]      = $data[0];
-        $price{"close"} = $data[1];
-        $price{"date"}  = $data[2];
-        if ( scalar(@data) > 3 ) {
-            $price{"max"}    = $data[3];
-            $price{"min"}    = $data[4];
-            $price{"volume"} = $data[5];
-        }
-        $result[1] = \%price;
-    }
-    else {
-        $result[0] = substr( $line, 0, 1 );
-        $result[1] = substr( $line, 1 );
-        if ( $self->{trim_white_space} ) {
-            $result[1] =~ s/^\s*(.*?)\s*$/$1/;
-        }
-    }
-    return @result;
-}
-
-sub _getline {
-    my $self = shift;
-    local $/ = $self->record_separator;
-    my $line = $self->_filehandle->getline;
-    chomp($line);
-    $self->{_linecount}++;
-    return $line;
-}
-
-sub _warning {
-    my $self    = shift;
-    my $message = shift;
-    carp(   $message
-          . " in file '"
-          . $self->file
-          . "' line "
-          . $self->{_linecount} );
-}
-
-sub header {
-    my $self   = shift;
-    my $header = shift;
-    my $fh     = $self->_filehandle;
-    local $\ = $self->{record_separator};
-    print( $fh "!", $header );
-
-    # used during write to validate passed record is appropriate for
-    # current header also generate reverse lookup for mapping record
-    # values to file key identifier.
-    $self->{currentheader} = $header;
-    foreach my $key ( keys %{ $header{$header} } ) {
-        $self->{reversemap}{ $header{$header}{$key} } = $key;
-    }
-    if ( exists( $header{$header}{S} ) && $header{$header}{S} eq "splits" ) {
-        foreach my $key ( keys %split ) {
-            $self->{reversesplitsmap}{ $split{$key} } = $key;
-        }
-    }
-
-    $self->{_linecount}++;
-    if ( !exists( $header{$header} ) ) {
-        $self->_warning("Unsupported header '$header' written to file");
-    }
-}
-
-sub write {
-    my $self   = shift;
-    my $record = shift;
-    if ( $record->{header} eq $self->{currentheader} ) {
-        if ( $record->{header} eq "Type:Prices" ) {
-            if ( exists( $record->{symbol} ) && exists( $record->{prices} ) ) {
-                foreach my $price ( @{ $record->{prices} } ) {
-                    if (   exists( $price->{close} )
-                        && exists( $price->{date} )
-                        && exists( $price->{max} )
-                        && exists( $price->{min} )
-                        && exists( $price->{volume} ) )
-                    {
-                        $self->_writeline(
-                            join( ",",
-                                '"' . $record->{symbol} . '"',
-                                $price->{close},
-                                '"' . $price->{date} . '"',
-                                $price->{max},
-                                $price->{min},
-                                $price->{volume} )
-                        );
-                    }
-                    elsif (exists( $price->{close} )
-                        && exists( $price->{date} ) )
-                    {
-                        $self->_writeline(
-                            join( ",",
-                                '"' . $record->{symbol} . '"',
-                                $price->{close},
-                                '"' . $price->{date} . '"' )
-                        );
-                    }
-                    else {
-                        $self->_warning("Prices missing a required field");
-                    }
-                }
-                $self->_writeline("^");
-            }
-            else {
-                $self->_warning("Record missing 'symbol' or 'prices'");
-            }
-        }
-        else {
-            foreach my $value ( keys %{$record} ) {
-                next
-                  if (
-                       $value eq "header"
-                    || $value eq "splits"
-                    || (   $self->{currentheader} eq "Type:Memorized"
-                        && $value eq "transaction" )
-                  );
-                if ( exists( $self->{reversemap}{$value} ) ) {
-                    if ( $value eq "address" ) {
-                        my @lines = split( "\n", $record->{$value} );
-                        if ( $self->{currentheader} eq "Type:Payee" ) {
-
-                          # The address fields are numbered for this record type
-                            for ( my $count = 0 ; $count < 3 ; $count++ ) {
-                                if ( $count <= $#lines ) {
-                                    $self->_writeline( "A", $count,
-                                        $lines[$count] );
-                                }
-                                else {
-                                    $self->_writeline( "A", $count );
-                                }
-                            }
-                        }
-                        else {
-                            for ( my $count = 0 ; $count < 6 ; $count++ ) {
-                                if ( $count <= $#lines ) {
-                                    $self->_writeline( "A", $lines[$count] );
-                                }
-                                else {
-                                    $self->_writeline("A");
-                                }
-                            }
-                        }
-                    }
-                    elsif ( $value eq "budget" ) {
-                        foreach my $amount ( @{ $record->{$value} } ) {
-                            $self->_writeline( $self->{reversemap}{$value},
-                                $amount );
-                        }
-                    }
-                    else {
-                        $self->_writeline( $self->{reversemap}{$value},
-                            $record->{$value} );
-                    }
-                }
-                else {
-                    $self->_warning( "Unsupported field '$value'"
-                          . " found in record ignored" );
-                }
-            }
-            if ( exists( $record->{splits} ) ) {
-                foreach my $s ( @{ $record->{splits} } ) {
-                    foreach my $key ( 'category', 'memo', 'amount' ) {
-                        if ( exists( $s->{$key} ) ) {
-                            $self->_writeline( $self->{reversesplitsmap}{$key},
-                                $s->{$key} );
-                        }
-                        else {
-                            $self->_writeline(
-                                $self->{reversesplitsmap}{$key} );
-                        }
-                    }
-                }
-            }
-            if ( $self->{currentheader} eq "Type:Memorized"
-                && exists( $record->{transaction} ) )
-            {
-                $self->_writeline( $self->{reversemap}{"transaction"},
-                    $record->{"transaction"} );
-            }
-            $self->_writeline("^");
-        }
-    }
-    else {
-        $self->_warning( "Record header type '"
-              . $record->{header}
-              . "' does not match current output header type "
-              . $self->{currentheader}
-              . "." );
-    }
-}
-
-sub _writeline {
-    my $self = shift;
-    my $fh   = $self->_filehandle;
-    local $\ = $self->{record_separator};
-    print( $fh @_ );
-    $self->{_linecount}++;
-}
-
-sub reset {
-    my $self = shift;
-    map( $self->{$_} = undef,    # initialize internally used variables
-        qw(_linecount header currentheader reversemap reversesplitsmap) );
-    $self->_filehandle->seek( 0, 0 );
-}
-
-sub close {
-    my $self = shift;
-    $self->_filehandle->close;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Finance::QIF - Parse and create Quicken Interchange Format files
-
-=head1 SYNOPSIS
-
-  use Finance::QIF;
-  
-  my $qif = Finance::QIF->new( file => "test.qif" );
-  
-  while ( my $record = $qif->next ) {
-      print( "Header: ", $record->{header}, "\n" );
-      foreach my $key ( keys %{$record} ) {
-          next
-            if ( $key eq "header"
-              || $key eq "splits"
-              || $key eq "budget"
-              || $key eq "prices" );
-          print( "     ", $key, ": ", $record->{$key}, "\n" );
-      }
-      if ( exists( $record->{splits} ) ) {
-          foreach my $split ( @{ $record->{splits} } ) {
-              foreach my $key ( keys %{$split} ) {
-                  print( "     Split: ", $key, ": ", $split->{$key}, "\n" );
-              }
-          }
-      }
-      if ( exists( $record->{budget} ) ) {
-          print("     Budget: ");
-          foreach my $amount ( @{ $record->{budget} } ) {
-              print( " ", $amount );
-          }
-          print("\n");
-      }
-      if ( exists( $record->{prices} ) ) {
-          print("     Date     Close   Max     Min     Volume\n");
-          $format = "     %8s %7.2f %7.2f %7.2f %-8d\n";
-          foreach my $price ( @{ $record->{prices} } ) {
-              printf( $format,
-                  $price->{"date"}, $price->{"close"}, $price->{"max"},
-                  $price->{"min"},  $price->{"volume"} );
-          }
-      }
-  }
-
-=head1 DESCRIPTION
-
-Finance::QIF is a module for working with QIF (Quicken Interchange
-Format) files in Perl.  This module reads QIF data records from a file
-passing each successive record to the caller for processing.  This
-module also has the capability of writing QIF records to a file.
-
-The QIF file format typically consists of a header containing a record
-or transaction type, followed by associated data records.  Within a
-file there may be multiple headers.  Headers are usually followed by
-data records, however data is not required to always follow a header.
-
-A hash reference is returned for each record read from a file.  The
-hash will have a "header" value which contains the header type that
-was read along with all supported values found for that record.  If a
-value is not specified in the data file, the value will not exist in
-this hash.
-
-No processing or validation is done on values found in files or data
-structures to try and convert them into appropriate types and formats.
-It is expected that users of this module or extensions to this module
-will do any additional processing or validation as required.
-
-=head2 RECORD TYPES & VALUES
-
-The following record types are currently supported by this module:
-
-=over
-
-=item Type:Bank, Type:Cash, Type:CCard, Type:Oth A, Type:Oth L
-
-These are non investment ledger transactions.  All of these record
-types support the following values.
-
-=over
-
-=item date
-
-Date of transaction.
-
-=item transaction
-
-Dollar amount of transaction.
-
-=item total
-
-Dollar amount of transaction. This is generally the same as transaction but
-in some cases can be higher. (Introduced in Quicken 2005 for windows)
-
-=item status
-
-Reconciliation status of transaction.
-
-=item number
-
-Check number of transaction.
-
-=item payee
-
-Who the transaction was made to.
-
-=item memo
-
-Additional text describing the transaction.
-
-=item address
-
-Address of payee.
-
-=item category
-
-Category the transaction is assigned to.
-
-=item splits
-
-If the transaction contains splits this will be defined and consist of
-an array of hash references.  With each split potentially having the
-following values.
-
-=over
-
-=item category
-
-Category the split is assigned to.
-
-=item memo
-
-Additional text describing the split.
-
-=item amount
-
-Dollar amount of split.
-
-=back
-
-=back
-
-=item Type:Invst
-
-This is for Investment ledger transactions.  The following values are
-supported for this record type.
-
-=over
-
-=item date
-
-Date of transaction.
-
-=item action
-
-Type of transaction like buy, sell, ...
-
-=item security
-
-Security name of transaction.
-
-=item price
-
-Price of security at time of transaction.
-
-=item quantity
-
-Number of shares purchased.
-
-=item transaction
-
-Cost of shares in transaction.
-
-=item status
-
-Reconciliation status of transaction.
-
-=item text
-
-Text for non security specific transaction.
-
-=item memo
-
-Additional text describing transaction.
-
-=item commission
-
-Commission fees related to transaction.
-
-=item account
-
-Account related to security specific transaction.
-
-=item amount
-
-Dollar amount of transaction.
-
-=item total
-
-Dollar amount of transaction. This is generally the same as amount but
-in some cases can be higher. (Introduced in Quicken 2005 for windows)
-
-=back
-
-=item Account
-
-This is a list of accounts.  In cases where it is used in a file by
-first providing one account record followed by a investment or
-non-investment record type and its transactions, it means that that
-set of transactions is related to the specified account.  In other
-cases it can just be a sequence of Account records.
-
-Each account record supports the following values.
-
-=over
-
-=item name
-
-Account name.
-
-=item description
-
-Account description.
-
-=item limit
-
-Account limit usually for credit card accounts that have some upper
-limit over credit.
-
-=item tax
-
-Defined if the account is tax related.
-
-=item note
-
-Additional information about the account.
-
-=item type
-
-Type of account.
-
-=item balance
-
-Current balance of account.
-
-=back
-
-=item Type:Cat
-
-This is a list of categories.  The following values are supported for
-category records.
-
-=over
-
-=item name
-
-Name of category.
-
-=item description
-
-Description of category.
-
-=item budget
-
-An array of 12 values Jan-Dec to represent the budget amount for each
-month.
-
-=item expense
-
-Usually exists if the category is an expense account however this is
-often a default assumed value and doesn't show up in files.
-
-=item income
-
-Exists if the category is an income account.
-
-=item tax
-
-Exists if this category is tax related.
-
-=item schedule
-
-If this category is tax related this specifies what tax schedule it is
-related if defined.
-
-=back
-
-=item Type:Class
-
-This is a list of classes.  The following values are supported for
-class records.
-
-=over
-
-=item name
-
-Name of class.
-
-=item description
-
-Description of class.
-
-=back
-
-=item Type:Memorized
-
-This is a list of memorized transactions.  The following values are
-supported for memorized transaction records.
-
-=over
-
-=item type
-
-Type of memorized transaction "C" for check, "D" for deposit, "P" for
-payment, "I" for investment, and "E" for electronic payee.
-
-=item transaction
-
-Dollar amount of transaction.
-
-=item total
-
-Dollar amount of transaction. This is generally the same as amount but
-in some cases can be higher. (Introduced in Quicken 2005 for windows)
-
-=item status
-
-Reconciliation status of transaction.
-
-=item payee
-
-Who the transaction was made to.
-
-=item memo
-
-Additional text describing the transaction.
-
-=item address
-
-Address of payee.
-
-=item category
-
-Category the transaction is assigned to.
-
-=item action
-
-Type of investment transaction like buty, sell, ... (Inroduced in Quicken
-2006 for windows)
-
-=item security
-
-Security name of transaction. (Inroduced in Quicken 2006 for windows)
-
-=item price
-
-Price of security. (Inroduced in Quicken 2006 for windows)
-
-=item quantity
-
-Quantity of security. (Inroduced in Quicken 2006 for windows)
-
-=item amount
-
-Dollar amount of transaction. (Introduced in Quicken 2006 for windows)
-
-=item splits
-
-If the transaction contains splits this will be defined and consist of
-an array of hashes.  With each split potentially having the following
-values.
-
-=over
-
-=item category
-
-Category the split is assigned to.
-
-=item memo
-
-Additional text describing the split.
-
-=item amount
-
-Dollar amount of split.
-
-=back
-
-=item first
-
-First payment date.
-
-=item years
-
-Total years for loan.
-
-=item made
-
-Number of payments already made.
-
-=item periods
-
-Number of periods per year.
-
-=item interest
-
-Interest rate of loan.
-
-=item balance
-
-Current loan balance.
-
-=item loan
-
-Original loan amount.
-
-=back
-
-=item Type:Security
-
-This is a list of securities.  The following values are supported for
-security records.
-
-=over
-
-=item security
-
-Security name.
-
-=item symbol
-
-Security symbol.
-
-=item type
-
-Security type.
-
-=item goal
-
-Security goal.
-
-=back
-
-=item Type:Budget
-
-This is a list of budget values for categories.  The following values
-are supported for budget records.
-
-=over
-
-=item name
-
-Category name of budgeted item.
-
-=item description
-
-Category Description of budgeted item.
-
-=item expense
-
-Usually exists if the category is an expense account however this is
-often a default assumed value and doesn't show up in files.
-
-=item income
-
-Exists if the category is an income account.
-
-=item tax
-
-Exists if this category is tax related.
-
-=item schedule
-
-If this category is tax related this specifies what tax schedule it is
-related if defined.
-
-=item budget
-
-An array of 12 values Jan-Dec to represent the budget amount for each
-month.
-
-=back
-
-=item Type:Payee
-
-This is a list online payee accounts.  The following values are
-supported for online payee account records.
-
-=over
-
-=item name
-
-Name of payees.
-
-=item address
-
-Address of payee.
-
-=item city
-
-City of payee.
-
-=item state
-
-State of payee
-
-=item zip
-
-Zipcode of payee.
-
-=item country
-
-Country of payee.
-
-=item phone
-
-Phone number of payee.
-
-=item account
-
-Account number for payee transaction.
-
-=back
-
-=item Type:Prices
-
-This is a list of prices for a security.  The following values are
-supported for security prices records.
-
-=over
-
-=item symbol
-
-Security Symbol.
-
-=item prices
-
-An array of hashes.  With each hash having the following values.
-
-=over
-
-=item date
-
-Date of security values.
-
-=item close
-
-Close value of security for the date.
-
-=item max
-
-Max value of security for the date.
-
-=item min
-
-Min value of security for the date.
-
-=item volume
-
-Number of shares of security exchanged for the date.
-
-=back
-
-=back
-
-=item Option:AllXfr, Option:AutoSwitch, Clear:AutoSwitch
-
-These record types aren't related to transactions but instead provided
-ways to control how Quicken processes the QIF file.  They have no
-impact on how this software operates and are ignored when found.
-
-=back
-
-Note: If this software finds unsupported record types or values in a
-data file a warning will be generated containing information on what
-unexpected value was found.
-
-=head1 METHODS
-
-=head2 new()
-
-Creates a new instance of Finance::QIF.  Supports the following
-initializing values.
-
-  my $qif = Finance::QIF->new( file => "myfile", debug => 1 );
-
-If the file is specified it will be opened on new.
-
-=over
-
-=item file
-
-Specifies file to use for processing.  See L</file()> for details.
-
-  my $in = Finance::QIF->new( file => "myfile" );
-OR
-  my $in = Finance::QIF->new( file => [ "myfile", "<:crlf" ] );
-
-For output files, be sure to open the file in write mode.  For example:
-
-  my $out = Finance::QIF->new( file => ">myfile" );
-
-=item record_separator
-
-Can be used to redefine the QIF record separator.  Default is $/.
-
-  my $in = Finance::QIF->new( record_separator => "\012" );
-
-Note: For MacOS X it will most likely be necessary to change this to
-"\015".  Quicken on MacOS X generates files with "\015" as the separator
-which is typical of Mac however the native perl in MacOS X is unix
-based and uses the default unix separator which is "\012".  See
-L</autodetect> for another option.
-
-=item autodetect
-
-Enable auto detection of the record separator based on the file
-contents.  Default is "0".
-
-  my $in = Finance::QIF->new( autodetect => 1 );
-
-Perl uses $/ to define line separators for text files.  Perl sets this
-value according to the OS perl is running on:
-
-  Windows="\015\012"
-  Mac="\015"
-  Unix="\012"
-
-In many cases you may find yourself with text files that do not match
-the OS.  In these cases Finance::QIF by default will not process that
-QIF file correctly. This feature is an attempt to help with the most
-common cases of having the wrong text file for the OS Finance::QIF is
-running on.
-
-This feature depends on being able to seek to the end of the file and
-reading the last 2 characters to determine the proper separator. If a
-seek can not be performed or the last 2 characters are not a proper
-separator the record_separator will default to $/ or the value passed
-in. If a valid record_separator is found then it will be set according
-to what was in the file.
-
-This code requires a file use a consistent line separator. If you find
-your self dealing with unusual files containing mixed separators you
-need to first Normalize the file to a consistent separator.
-
-Normalizing a text file to have a consistent line separator is done in
-modules like  File::LocalizeNewlines or Template::Parser::LocalizeNewlines
-so if you are having issues with trying to process poorly formated text
-files look at preprocessing them with something like those before passing
-on to Finance::QIF.
-
-=item trim_white_space
-
-Can be used to remove leading and trailing white space from values
-returned. Default is "0".
-
-  my $qif = Finance::QIF->new( trim_white_space => 1 );
-
-=item debug
-
-Can be used to output debug information.  Default is "0".
-
-  my $qif = Finance::QIF->new( debug => 1 );
-
-=back
-
-=head2 file()
-
-Specify file name and optionally additional parameters that will be
-used to obtain a filehandle.  The argument can be a filename (SCALAR),
-an ARRAY reference, or an ARRAY whose values must be valid arguments
-for passing to IO::File->new.
-
-  $qif->file( "myfile" );
- OR
-  $qif->file( [ "myfile", "<:crlf" ] );
- OR
-  $qif->file( "myfile", "<:crlf" );
-
-For output files, be sure to open the file in write mode.
-
-=head2 record_separator()
-
-Returns the currently used record_separator.  This is used primarly in
-situations where you open a QIF file with autodetect and then want to
-write out a QIF file in the same format.
-
-  my $in  = Finance::QIF->new( file => "input.qif", autodetect => 1 );
-  my $out = Finance::QIF->new( file => ">write.qif",
-                               record_separator => $in->record_separator );
-
-=head2 open()
-
-Open already specified file.
-
-  $qif->open();
-
-Open also supports the same arguments as L</file()>.
-
-=head2 next()
-
-For input files return the next record in the QIF file.
-
-  my $record = $in->next();
-
-Returns undef if no more records are available.
-
-=head2 header()
-
-For output files use to output the passed header for records that will
-then be written with write.
-
-  $out->header( "Type:Bank" );
-
-See L<RECORD TYPES & VALUES> for list of possible record types that
-can be passed.
-
-=head2 write()
-
-For output files use to output the passed record to the file.
-
-  $out->write( $record );
-
-=head2 reset()
-
-Resets the filehandle so the records can be read again from the
-beginning of the file.
-
-  $qif->reset();
-
-=head2 close()
-
-Closes the open file.
-
-  $qif->close();
-
-=head1 EXAMPLES
-
-Read an existing QIF file then write out to new QIF file.
-
-  my $in  = Finance::QIF->new( file => "input.qif" );
-  my $out = Finance::QIF->new( file => ">write.qif" );
-  
-  my $header = "";
-  while ( my $record = $in->next() ) {
-      if ( $header ne $record->{header} ) {
-          $out->header( $record->{header} );
-          $header = $record->{header};
-      }
-      $out->write($record);
-  }
-  
-  $in->close();
-  $out->close();
-
-=head1 SEE ALSO
-
-L<Carp>, L<IO::File>
-
-Quicken Interchange Format (QIF) specification
-L<http://web.intuit.com/support/quicken/docs/d_qif.html>
-
-=head1 ACKNOWLEDGEMENTS
-
-Simon Cozens C<simon at cpan.org>, Author of original Finance::QIF
-
-Nathan McFarland C<nmcfarl at cpan.org>, Maintainer of original Finance::QIF
-
-=head1 AUTHORS
-
-Matthew McGillis E<lt>matthew at mcgillis.orgE<gt> L<http://www.mcgillis.org/>
-
-Phil Lobbes E<lt>phil at perkpartners dot comE<gt>
-
-Project maintained at L<http://sourceforge.net/projects/finance-qif>
-
-=head1 COPYRIGHT
-
-Copyright (C) 2006-2008 by Matthew McGillis.  All rights reserved.
-
-=head1 LICENSE
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
diff --git a/blib/lib/auto/Finance/QIF/.exists b/blib/lib/auto/Finance/QIF/.exists
deleted file mode 100644
index e69de29..0000000
diff --git a/blib/man1/.exists b/blib/man1/.exists
deleted file mode 100644
index e69de29..0000000
diff --git a/blib/man3/.exists b/blib/man3/.exists
deleted file mode 100644
index e69de29..0000000
diff --git a/blib/man3/Finance::QIF.3pm b/blib/man3/Finance::QIF.3pm
deleted file mode 100644
index 99ee89b..0000000
--- a/blib/man3/Finance::QIF.3pm
+++ /dev/null
@@ -1,816 +0,0 @@
-.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
-.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
-.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
-.\" nothing in troff, for use with C<>.
-.tr \(*W-
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" Escape single quotes in literal strings from groff's Unicode transform.
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.ie \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.el \{\
-.    de IX
-..
-.\}
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "Finance::QIF 3pm"
-.TH Finance::QIF 3pm "2010-09-30" "perl v5.14.2" "User Contributed Perl Documentation"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.if n .ad l
-.nh
-.SH "NAME"
-Finance::QIF \- Parse and create Quicken Interchange Format files
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-.Vb 1
-\&  use Finance::QIF;
-\&  
-\&  my $qif = Finance::QIF\->new( file => "test.qif" );
-\&  
-\&  while ( my $record = $qif\->next ) {
-\&      print( "Header: ", $record\->{header}, "\en" );
-\&      foreach my $key ( keys %{$record} ) {
-\&          next
-\&            if ( $key eq "header"
-\&              || $key eq "splits"
-\&              || $key eq "budget"
-\&              || $key eq "prices" );
-\&          print( "     ", $key, ": ", $record\->{$key}, "\en" );
-\&      }
-\&      if ( exists( $record\->{splits} ) ) {
-\&          foreach my $split ( @{ $record\->{splits} } ) {
-\&              foreach my $key ( keys %{$split} ) {
-\&                  print( "     Split: ", $key, ": ", $split\->{$key}, "\en" );
-\&              }
-\&          }
-\&      }
-\&      if ( exists( $record\->{budget} ) ) {
-\&          print("     Budget: ");
-\&          foreach my $amount ( @{ $record\->{budget} } ) {
-\&              print( " ", $amount );
-\&          }
-\&          print("\en");
-\&      }
-\&      if ( exists( $record\->{prices} ) ) {
-\&          print("     Date     Close   Max     Min     Volume\en");
-\&          $format = "     %8s %7.2f %7.2f %7.2f %\-8d\en";
-\&          foreach my $price ( @{ $record\->{prices} } ) {
-\&              printf( $format,
-\&                  $price\->{"date"}, $price\->{"close"}, $price\->{"max"},
-\&                  $price\->{"min"},  $price\->{"volume"} );
-\&          }
-\&      }
-\&  }
-.Ve
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-Finance::QIF is a module for working with \s-1QIF\s0 (Quicken Interchange
-Format) files in Perl.  This module reads \s-1QIF\s0 data records from a file
-passing each successive record to the caller for processing.  This
-module also has the capability of writing \s-1QIF\s0 records to a file.
-.PP
-The \s-1QIF\s0 file format typically consists of a header containing a record
-or transaction type, followed by associated data records.  Within a
-file there may be multiple headers.  Headers are usually followed by
-data records, however data is not required to always follow a header.
-.PP
-A hash reference is returned for each record read from a file.  The
-hash will have a \*(L"header\*(R" value which contains the header type that
-was read along with all supported values found for that record.  If a
-value is not specified in the data file, the value will not exist in
-this hash.
-.PP
-No processing or validation is done on values found in files or data
-structures to try and convert them into appropriate types and formats.
-It is expected that users of this module or extensions to this module
-will do any additional processing or validation as required.
-.SS "\s-1RECORD\s0 \s-1TYPES\s0 & \s-1VALUES\s0"
-.IX Subsection "RECORD TYPES & VALUES"
-The following record types are currently supported by this module:
-.IP "Type:Bank, Type:Cash, Type:CCard, Type:Oth A, Type:Oth L" 4
-.IX Item "Type:Bank, Type:Cash, Type:CCard, Type:Oth A, Type:Oth L"
-These are non investment ledger transactions.  All of these record
-types support the following values.
-.RS 4
-.IP "date" 4
-.IX Item "date"
-Date of transaction.
-.IP "transaction" 4
-.IX Item "transaction"
-Dollar amount of transaction.
-.IP "total" 4
-.IX Item "total"
-Dollar amount of transaction. This is generally the same as transaction but
-in some cases can be higher. (Introduced in Quicken 2005 for windows)
-.IP "status" 4
-.IX Item "status"
-Reconciliation status of transaction.
-.IP "number" 4
-.IX Item "number"
-Check number of transaction.
-.IP "payee" 4
-.IX Item "payee"
-Who the transaction was made to.
-.IP "memo" 4
-.IX Item "memo"
-Additional text describing the transaction.
-.IP "address" 4
-.IX Item "address"
-Address of payee.
-.IP "category" 4
-.IX Item "category"
-Category the transaction is assigned to.
-.IP "splits" 4
-.IX Item "splits"
-If the transaction contains splits this will be defined and consist of
-an array of hash references.  With each split potentially having the
-following values.
-.RS 4
-.IP "category" 4
-.IX Item "category"
-Category the split is assigned to.
-.IP "memo" 4
-.IX Item "memo"
-Additional text describing the split.
-.IP "amount" 4
-.IX Item "amount"
-Dollar amount of split.
-.RE
-.RS 4
-.RE
-.RE
-.RS 4
-.RE
-.IP "Type:Invst" 4
-.IX Item "Type:Invst"
-This is for Investment ledger transactions.  The following values are
-supported for this record type.
-.RS 4
-.IP "date" 4
-.IX Item "date"
-Date of transaction.
-.IP "action" 4
-.IX Item "action"
-Type of transaction like buy, sell, ...
-.IP "security" 4
-.IX Item "security"
-Security name of transaction.
-.IP "price" 4
-.IX Item "price"
-Price of security at time of transaction.
-.IP "quantity" 4
-.IX Item "quantity"
-Number of shares purchased.
-.IP "transaction" 4
-.IX Item "transaction"
-Cost of shares in transaction.
-.IP "status" 4
-.IX Item "status"
-Reconciliation status of transaction.
-.IP "text" 4
-.IX Item "text"
-Text for non security specific transaction.
-.IP "memo" 4
-.IX Item "memo"
-Additional text describing transaction.
-.IP "commission" 4
-.IX Item "commission"
-Commission fees related to transaction.
-.IP "account" 4
-.IX Item "account"
-Account related to security specific transaction.
-.IP "amount" 4
-.IX Item "amount"
-Dollar amount of transaction.
-.IP "total" 4
-.IX Item "total"
-Dollar amount of transaction. This is generally the same as amount but
-in some cases can be higher. (Introduced in Quicken 2005 for windows)
-.RE
-.RS 4
-.RE
-.IP "Account" 4
-.IX Item "Account"
-This is a list of accounts.  In cases where it is used in a file by
-first providing one account record followed by a investment or
-non-investment record type and its transactions, it means that that
-set of transactions is related to the specified account.  In other
-cases it can just be a sequence of Account records.
-.Sp
-Each account record supports the following values.
-.RS 4
-.IP "name" 4
-.IX Item "name"
-Account name.
-.IP "description" 4
-.IX Item "description"
-Account description.
-.IP "limit" 4
-.IX Item "limit"
-Account limit usually for credit card accounts that have some upper
-limit over credit.
-.IP "tax" 4
-.IX Item "tax"
-Defined if the account is tax related.
-.IP "note" 4
-.IX Item "note"
-Additional information about the account.
-.IP "type" 4
-.IX Item "type"
-Type of account.
-.IP "balance" 4
-.IX Item "balance"
-Current balance of account.
-.RE
-.RS 4
-.RE
-.IP "Type:Cat" 4
-.IX Item "Type:Cat"
-This is a list of categories.  The following values are supported for
-category records.
-.RS 4
-.IP "name" 4
-.IX Item "name"
-Name of category.
-.IP "description" 4
-.IX Item "description"
-Description of category.
-.IP "budget" 4
-.IX Item "budget"
-An array of 12 values Jan-Dec to represent the budget amount for each
-month.
-.IP "expense" 4
-.IX Item "expense"
-Usually exists if the category is an expense account however this is
-often a default assumed value and doesn't show up in files.
-.IP "income" 4
-.IX Item "income"
-Exists if the category is an income account.
-.IP "tax" 4
-.IX Item "tax"
-Exists if this category is tax related.
-.IP "schedule" 4
-.IX Item "schedule"
-If this category is tax related this specifies what tax schedule it is
-related if defined.
-.RE
-.RS 4
-.RE
-.IP "Type:Class" 4
-.IX Item "Type:Class"
-This is a list of classes.  The following values are supported for
-class records.
-.RS 4
-.IP "name" 4
-.IX Item "name"
-Name of class.
-.IP "description" 4
-.IX Item "description"
-Description of class.
-.RE
-.RS 4
-.RE
-.IP "Type:Memorized" 4
-.IX Item "Type:Memorized"
-This is a list of memorized transactions.  The following values are
-supported for memorized transaction records.
-.RS 4
-.IP "type" 4
-.IX Item "type"
-Type of memorized transaction \*(L"C\*(R" for check, \*(L"D\*(R" for deposit, \*(L"P\*(R" for
-payment, \*(L"I\*(R" for investment, and \*(L"E\*(R" for electronic payee.
-.IP "transaction" 4
-.IX Item "transaction"
-Dollar amount of transaction.
-.IP "total" 4
-.IX Item "total"
-Dollar amount of transaction. This is generally the same as amount but
-in some cases can be higher. (Introduced in Quicken 2005 for windows)
-.IP "status" 4
-.IX Item "status"
-Reconciliation status of transaction.
-.IP "payee" 4
-.IX Item "payee"
-Who the transaction was made to.
-.IP "memo" 4
-.IX Item "memo"
-Additional text describing the transaction.
-.IP "address" 4
-.IX Item "address"
-Address of payee.
-.IP "category" 4
-.IX Item "category"
-Category the transaction is assigned to.
-.IP "action" 4
-.IX Item "action"
-Type of investment transaction like buty, sell, ... (Inroduced in Quicken
-2006 for windows)
-.IP "security" 4
-.IX Item "security"
-Security name of transaction. (Inroduced in Quicken 2006 for windows)
-.IP "price" 4
-.IX Item "price"
-Price of security. (Inroduced in Quicken 2006 for windows)
-.IP "quantity" 4
-.IX Item "quantity"
-Quantity of security. (Inroduced in Quicken 2006 for windows)
-.IP "amount" 4
-.IX Item "amount"
-Dollar amount of transaction. (Introduced in Quicken 2006 for windows)
-.IP "splits" 4
-.IX Item "splits"
-If the transaction contains splits this will be defined and consist of
-an array of hashes.  With each split potentially having the following
-values.
-.RS 4
-.IP "category" 4
-.IX Item "category"
-Category the split is assigned to.
-.IP "memo" 4
-.IX Item "memo"
-Additional text describing the split.
-.IP "amount" 4
-.IX Item "amount"
-Dollar amount of split.
-.RE
-.RS 4
-.RE
-.IP "first" 4
-.IX Item "first"
-First payment date.
-.IP "years" 4
-.IX Item "years"
-Total years for loan.
-.IP "made" 4
-.IX Item "made"
-Number of payments already made.
-.IP "periods" 4
-.IX Item "periods"
-Number of periods per year.
-.IP "interest" 4
-.IX Item "interest"
-Interest rate of loan.
-.IP "balance" 4
-.IX Item "balance"
-Current loan balance.
-.IP "loan" 4
-.IX Item "loan"
-Original loan amount.
-.RE
-.RS 4
-.RE
-.IP "Type:Security" 4
-.IX Item "Type:Security"
-This is a list of securities.  The following values are supported for
-security records.
-.RS 4
-.IP "security" 4
-.IX Item "security"
-Security name.
-.IP "symbol" 4
-.IX Item "symbol"
-Security symbol.
-.IP "type" 4
-.IX Item "type"
-Security type.
-.IP "goal" 4
-.IX Item "goal"
-Security goal.
-.RE
-.RS 4
-.RE
-.IP "Type:Budget" 4
-.IX Item "Type:Budget"
-This is a list of budget values for categories.  The following values
-are supported for budget records.
-.RS 4
-.IP "name" 4
-.IX Item "name"
-Category name of budgeted item.
-.IP "description" 4
-.IX Item "description"
-Category Description of budgeted item.
-.IP "expense" 4
-.IX Item "expense"
-Usually exists if the category is an expense account however this is
-often a default assumed value and doesn't show up in files.
-.IP "income" 4
-.IX Item "income"
-Exists if the category is an income account.
-.IP "tax" 4
-.IX Item "tax"
-Exists if this category is tax related.
-.IP "schedule" 4
-.IX Item "schedule"
-If this category is tax related this specifies what tax schedule it is
-related if defined.
-.IP "budget" 4
-.IX Item "budget"
-An array of 12 values Jan-Dec to represent the budget amount for each
-month.
-.RE
-.RS 4
-.RE
-.IP "Type:Payee" 4
-.IX Item "Type:Payee"
-This is a list online payee accounts.  The following values are
-supported for online payee account records.
-.RS 4
-.IP "name" 4
-.IX Item "name"
-Name of payees.
-.IP "address" 4
-.IX Item "address"
-Address of payee.
-.IP "city" 4
-.IX Item "city"
-City of payee.
-.IP "state" 4
-.IX Item "state"
-State of payee
-.IP "zip" 4
-.IX Item "zip"
-Zipcode of payee.
-.IP "country" 4
-.IX Item "country"
-Country of payee.
-.IP "phone" 4
-.IX Item "phone"
-Phone number of payee.
-.IP "account" 4
-.IX Item "account"
-Account number for payee transaction.
-.RE
-.RS 4
-.RE
-.IP "Type:Prices" 4
-.IX Item "Type:Prices"
-This is a list of prices for a security.  The following values are
-supported for security prices records.
-.RS 4
-.IP "symbol" 4
-.IX Item "symbol"
-Security Symbol.
-.IP "prices" 4
-.IX Item "prices"
-An array of hashes.  With each hash having the following values.
-.RS 4
-.IP "date" 4
-.IX Item "date"
-Date of security values.
-.IP "close" 4
-.IX Item "close"
-Close value of security for the date.
-.IP "max" 4
-.IX Item "max"
-Max value of security for the date.
-.IP "min" 4
-.IX Item "min"
-Min value of security for the date.
-.IP "volume" 4
-.IX Item "volume"
-Number of shares of security exchanged for the date.
-.RE
-.RS 4
-.RE
-.RE
-.RS 4
-.RE
-.IP "Option:AllXfr, Option:AutoSwitch, Clear:AutoSwitch" 4
-.IX Item "Option:AllXfr, Option:AutoSwitch, Clear:AutoSwitch"
-These record types aren't related to transactions but instead provided
-ways to control how Quicken processes the \s-1QIF\s0 file.  They have no
-impact on how this software operates and are ignored when found.
-.PP
-Note: If this software finds unsupported record types or values in a
-data file a warning will be generated containing information on what
-unexpected value was found.
-.SH "METHODS"
-.IX Header "METHODS"
-.SS "\fInew()\fP"
-.IX Subsection "new()"
-Creates a new instance of Finance::QIF.  Supports the following
-initializing values.
-.PP
-.Vb 1
-\&  my $qif = Finance::QIF\->new( file => "myfile", debug => 1 );
-.Ve
-.PP
-If the file is specified it will be opened on new.
-.IP "file" 4
-.IX Item "file"
-Specifies file to use for processing.  See \*(L"\fIfile()\fR\*(R" for details.
-.Sp
-.Vb 3
-\&  my $in = Finance::QIF\->new( file => "myfile" );
-\&OR
-\&  my $in = Finance::QIF\->new( file => [ "myfile", "<:crlf" ] );
-.Ve
-.Sp
-For output files, be sure to open the file in write mode.  For example:
-.Sp
-.Vb 1
-\&  my $out = Finance::QIF\->new( file => ">myfile" );
-.Ve
-.IP "record_separator" 4
-.IX Item "record_separator"
-Can be used to redefine the \s-1QIF\s0 record separator.  Default is $/.
-.Sp
-.Vb 1
-\&  my $in = Finance::QIF\->new( record_separator => "\e012" );
-.Ve
-.Sp
-Note: For MacOS X it will most likely be necessary to change this to
-\&\*(L"\e015\*(R".  Quicken on MacOS X generates files with \*(L"\e015\*(R" as the separator
-which is typical of Mac however the native perl in MacOS X is unix
-based and uses the default unix separator which is \*(L"\e012\*(R".  See
-\&\*(L"autodetect\*(R" for another option.
-.IP "autodetect" 4
-.IX Item "autodetect"
-Enable auto detection of the record separator based on the file
-contents.  Default is \*(L"0\*(R".
-.Sp
-.Vb 1
-\&  my $in = Finance::QIF\->new( autodetect => 1 );
-.Ve
-.Sp
-Perl uses $/ to define line separators for text files.  Perl sets this
-value according to the \s-1OS\s0 perl is running on:
-.Sp
-.Vb 3
-\&  Windows="\e015\e012"
-\&  Mac="\e015"
-\&  Unix="\e012"
-.Ve
-.Sp
-In many cases you may find yourself with text files that do not match
-the \s-1OS\s0.  In these cases Finance::QIF by default will not process that
-\&\s-1QIF\s0 file correctly. This feature is an attempt to help with the most
-common cases of having the wrong text file for the \s-1OS\s0 Finance::QIF is
-running on.
-.Sp
-This feature depends on being able to seek to the end of the file and
-reading the last 2 characters to determine the proper separator. If a
-seek can not be performed or the last 2 characters are not a proper
-separator the record_separator will default to $/ or the value passed
-in. If a valid record_separator is found then it will be set according
-to what was in the file.
-.Sp
-This code requires a file use a consistent line separator. If you find
-your self dealing with unusual files containing mixed separators you
-need to first Normalize the file to a consistent separator.
-.Sp
-Normalizing a text file to have a consistent line separator is done in
-modules like  File::LocalizeNewlines or Template::Parser::LocalizeNewlines
-so if you are having issues with trying to process poorly formated text
-files look at preprocessing them with something like those before passing
-on to Finance::QIF.
-.IP "trim_white_space" 4
-.IX Item "trim_white_space"
-Can be used to remove leading and trailing white space from values
-returned. Default is \*(L"0\*(R".
-.Sp
-.Vb 1
-\&  my $qif = Finance::QIF\->new( trim_white_space => 1 );
-.Ve
-.IP "debug" 4
-.IX Item "debug"
-Can be used to output debug information.  Default is \*(L"0\*(R".
-.Sp
-.Vb 1
-\&  my $qif = Finance::QIF\->new( debug => 1 );
-.Ve
-.SS "\fIfile()\fP"
-.IX Subsection "file()"
-Specify file name and optionally additional parameters that will be
-used to obtain a filehandle.  The argument can be a filename (\s-1SCALAR\s0),
-an \s-1ARRAY\s0 reference, or an \s-1ARRAY\s0 whose values must be valid arguments
-for passing to IO::File\->new.
-.PP
-.Vb 5
-\&  $qif\->file( "myfile" );
-\& OR
-\&  $qif\->file( [ "myfile", "<:crlf" ] );
-\& OR
-\&  $qif\->file( "myfile", "<:crlf" );
-.Ve
-.PP
-For output files, be sure to open the file in write mode.
-.SS "\fIrecord_separator()\fP"
-.IX Subsection "record_separator()"
-Returns the currently used record_separator.  This is used primarly in
-situations where you open a \s-1QIF\s0 file with autodetect and then want to
-write out a \s-1QIF\s0 file in the same format.
-.PP
-.Vb 3
-\&  my $in  = Finance::QIF\->new( file => "input.qif", autodetect => 1 );
-\&  my $out = Finance::QIF\->new( file => ">write.qif",
-\&                               record_separator => $in\->record_separator );
-.Ve
-.SS "\fIopen()\fP"
-.IX Subsection "open()"
-Open already specified file.
-.PP
-.Vb 1
-\&  $qif\->open();
-.Ve
-.PP
-Open also supports the same arguments as \*(L"\fIfile()\fR\*(R".
-.SS "\fInext()\fP"
-.IX Subsection "next()"
-For input files return the next record in the \s-1QIF\s0 file.
-.PP
-.Vb 1
-\&  my $record = $in\->next();
-.Ve
-.PP
-Returns undef if no more records are available.
-.SS "\fIheader()\fP"
-.IX Subsection "header()"
-For output files use to output the passed header for records that will
-then be written with write.
-.PP
-.Vb 1
-\&  $out\->header( "Type:Bank" );
-.Ve
-.PP
-See \*(L"\s-1RECORD\s0 \s-1TYPES\s0 & \s-1VALUES\s0\*(R" for list of possible record types that
-can be passed.
-.SS "\fIwrite()\fP"
-.IX Subsection "write()"
-For output files use to output the passed record to the file.
-.PP
-.Vb 1
-\&  $out\->write( $record );
-.Ve
-.SS "\fIreset()\fP"
-.IX Subsection "reset()"
-Resets the filehandle so the records can be read again from the
-beginning of the file.
-.PP
-.Vb 1
-\&  $qif\->reset();
-.Ve
-.SS "\fIclose()\fP"
-.IX Subsection "close()"
-Closes the open file.
-.PP
-.Vb 1
-\&  $qif\->close();
-.Ve
-.SH "EXAMPLES"
-.IX Header "EXAMPLES"
-Read an existing \s-1QIF\s0 file then write out to new \s-1QIF\s0 file.
-.PP
-.Vb 2
-\&  my $in  = Finance::QIF\->new( file => "input.qif" );
-\&  my $out = Finance::QIF\->new( file => ">write.qif" );
-\&  
-\&  my $header = "";
-\&  while ( my $record = $in\->next() ) {
-\&      if ( $header ne $record\->{header} ) {
-\&          $out\->header( $record\->{header} );
-\&          $header = $record\->{header};
-\&      }
-\&      $out\->write($record);
-\&  }
-\&  
-\&  $in\->close();
-\&  $out\->close();
-.Ve
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-Carp, IO::File
-.PP
-Quicken Interchange Format (\s-1QIF\s0) specification
-<http://web.intuit.com/support/quicken/docs/d_qif.html>
-.SH "ACKNOWLEDGEMENTS"
-.IX Header "ACKNOWLEDGEMENTS"
-Simon Cozens \f(CW\*(C`simon at cpan.org\*(C'\fR, Author of original Finance::QIF
-.PP
-Nathan McFarland \f(CW\*(C`nmcfarl at cpan.org\*(C'\fR, Maintainer of original Finance::QIF
-.SH "AUTHORS"
-.IX Header "AUTHORS"
-Matthew McGillis <matthew at mcgillis.org> <http://www.mcgillis.org/>
-.PP
-Phil Lobbes <phil at perkpartners dot com>
-.PP
-Project maintained at http://sourceforge.net/projects/finance\-qif <http://sourceforge.net/projects/finance-qif>
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (C) 2006\-2008 by Matthew McGillis.  All rights reserved.
-.SH "LICENSE"
-.IX Header "LICENSE"
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
diff --git a/blib/script/.exists b/blib/script/.exists
deleted file mode 100644
index e69de29..0000000
diff --git a/debian/files b/debian/files
deleted file mode 100644
index 8abca4b..0000000
--- a/debian/files
+++ /dev/null
@@ -1 +0,0 @@
-libfinance-qif-perl_3.02-1_all.deb perl optional
diff --git a/debian/libfinance-qif-perl.debhelper.log b/debian/libfinance-qif-perl.debhelper.log
deleted file mode 100644
index 545a50f..0000000
--- a/debian/libfinance-qif-perl.debhelper.log
+++ /dev/null
@@ -1,45 +0,0 @@
-dh_auto_configure
-dh_auto_build
-dh_auto_test
-dh_prep
-dh_installdirs
-dh_auto_install
-dh_install
-dh_installdocs
-dh_installchangelogs
-dh_installexamples
-dh_installman
-dh_installcatalogs
-dh_installcron
-dh_installdebconf
-dh_installemacsen
-dh_installifupdown
-dh_installinfo
-dh_pysupport
-dh_installinit
-dh_installmenu
-dh_installmime
-dh_installmodules
-dh_installlogcheck
-dh_installlogrotate
-dh_installpam
-dh_installppp
-dh_installudev
-dh_installwm
-dh_installxfonts
-dh_installgsettings
-dh_bugfiles
-dh_ucf
-dh_lintian
-dh_gconf
-dh_icons
-dh_perl
-dh_usrlocal
-dh_link
-dh_compress
-dh_fixperms
-dh_installdeb
-dh_gencontrol
-dh_md5sums
-dh_builddeb
-dh_builddeb
diff --git a/debian/libfinance-qif-perl.substvars b/debian/libfinance-qif-perl.substvars
deleted file mode 100644
index bcb0957..0000000
--- a/debian/libfinance-qif-perl.substvars
+++ /dev/null
@@ -1,2 +0,0 @@
-perl:Depends=perl
-misc:Depends=
diff --git a/debian/libfinance-qif-perl/DEBIAN/control b/debian/libfinance-qif-perl/DEBIAN/control
deleted file mode 100644
index 236b09d..0000000
--- a/debian/libfinance-qif-perl/DEBIAN/control
+++ /dev/null
@@ -1,26 +0,0 @@
-Package: libfinance-qif-perl
-Version: 3.02-1
-Architecture: all
-Maintainer: Debian Perl Group <pkg-perl-maintainers at lists.alioth.debian.org>
-Installed-Size: 46
-Depends: perl
-Section: perl
-Priority: optional
-Homepage: http://search.cpan.org/dist/Finance-QIF/
-Description: Parse and create Quicken Interchange Format files
- Finance::QIF is a module for working with QIF (Quicken Interchange Format)
- files in Perl. Finance::QIF reads QIF data records from a file passing each
- successive record to the caller for processing. This module also has the
- capability of writing QIF records to a file.
- .
- The QIF file format typically consists of a header containing a record or
- transaction type, followed by associated data records. Within a file there
- may be multiple headers. Headers are usually followed by data records,
- however data is not required to always follow a header.
- .
- A hash reference is returned for each record read from a file. The hash will
- have a "header" value which contains the header type that was read along with
- all supported values found for that record. If a value is not specified in
- the data file, the value will not exist in this hash.
- .
- This description was automagically extracted from the module by dh-make-perl.
diff --git a/debian/libfinance-qif-perl/DEBIAN/md5sums b/debian/libfinance-qif-perl/DEBIAN/md5sums
deleted file mode 100644
index 96e61e1..0000000
--- a/debian/libfinance-qif-perl/DEBIAN/md5sums
+++ /dev/null
@@ -1,8 +0,0 @@
-597e4d841296b6b2674faf4fc8b5d7a0  usr/share/doc/libfinance-qif-perl/README
-caf0cda79717979ccc73dbefe7e48afd  usr/share/doc/libfinance-qif-perl/changelog.Debian.gz
-55c1204af1d14b102d01aa950177b4d0  usr/share/doc/libfinance-qif-perl/changelog.gz
-6c0ef7fef0064974eb0e78ad8aa4f4e4  usr/share/doc/libfinance-qif-perl/copyright
-095b249fcb04c0282bdd728b1545531e  usr/share/doc/libfinance-qif-perl/examples/qifdumper
-a74a0786020d4ac25a003997ac9e3b08  usr/share/doc/libfinance-qif-perl/examples/readwrite
-8cf6389d8d847dced1086f486ce089c6  usr/share/man/man3/Finance::QIF.3pm.gz
-1e76bb271f12c0463f2bfffa9da0afb4  usr/share/perl5/Finance/QIF.pm
diff --git a/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/README b/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/README
deleted file mode 100644
index f1049fc..0000000
--- a/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/README
+++ /dev/null
@@ -1,49 +0,0 @@
-Finance-QIF version 3.02
-=======================
-
-Simple QIF file reader. QIF is a common financial software export file
-format.  This module was developed to support Quicken QIF exports.
-This module reads QIF records from a data file passing each successive
-record to the caller for processing.
-
-INSTALLATION
-
-To install this module type the following:
-
-   perl Makefile.PL
-   make
-   make test
-   make install
-
-DEPENDENCIES
-
-This module requires these other modules and libraries:
-
-  Carp, IO::File
-
-COPYRIGHT AND LICENSE
-
-Copyright (C) 2006 by Matthew McGillis
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-COMMENTS
-
-We have put together a new version of FInance::QIF. I was looking for
-something that could process a complete export from Quicken. I took a
-look at the original Finance::QIF currently available at CPAN and
-found it could not process much of a typical Quicken QIF file. This
-new version of Finance::QIF is fairly different from the existing
-Finance::QIF. We have contacted the previous owner and asked for
-permission to take ownership of the existing Finance::QIF. They agreed
-to let us pick up the code.
-
-This version does have different API's than the 1.X so anyone porting code
-to this new version will have to make modifications to get things working.
-
-The software is available at
-http://sourceforge.net/projects/finance-qif
-
-Regards,
-Matthew McGillis & Phil Lobbes
diff --git a/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/changelog.Debian.gz b/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/changelog.Debian.gz
deleted file mode 100644
index a4e7b3a..0000000
Binary files a/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/changelog.Debian.gz and /dev/null differ
diff --git a/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/changelog.gz b/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/changelog.gz
deleted file mode 100644
index 74abd06..0000000
Binary files a/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/changelog.gz and /dev/null differ
diff --git a/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/copyright b/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/copyright
deleted file mode 100644
index 76cbe24..0000000
--- a/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/copyright
+++ /dev/null
@@ -1,42 +0,0 @@
-Format-Specification: http://anonscm.debian.org/viewvc/dep/web/deps/dep5.mdwn?view=markup&pathrev=135
-Maintainer: Matthew McGillis <matthew at mcgillis.org> & Phil Lobbes <phil at perkpartners.com>
-Source: http://search.cpan.org/dist/Finance-QIF/
-Name: Finance-QIF
-DISCLAIMER: This copyright info was automatically extracted 
- from the perl module. It may not be accurate, so you better 
- check the module sources in order to ensure the module for its 
- inclusion in Debian or for general legal information. Please, 
- if licensing information is incorrectly generated, file a bug 
- on dh-make-perl.
- NOTE: Don't forget to remove this disclaimer once you are happy
- with this file.
-
-Files: *
-Copyright: Matthew McGillis <matthew at mcgillis.org> & Phil Lobbes <phil at perkpartners.com>
-License: unparsable
-
-Files: debian/*
-Copyright: 2012, TANIGUCHI Takaki <takaki at debian.org>
-License: unparsable or Artistic or GPL-1+
-
-License: unparsable
- No known license could be automatically determined for this module.
- If this module conforms to a commonly used license, please report this
- as a bug in dh-make-perl. In any case, please find the proper license
- and fix this file!
-
-License: Artistic
- This program is free software; you can redistribute it and/or modify
- it under the terms of the Artistic License, which comes with Perl.
- .
- On Debian systems, the complete text of the Artistic License can be
- found in `/usr/share/common-licenses/Artistic'.
-
-License: GPL-1+
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 1, or (at your option)
- any later version.
- .
- On Debian systems, the complete text of version 1 of the GNU General
- Public License can be found in `/usr/share/common-licenses/GPL-1'.
diff --git a/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/examples/qifdumper b/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/examples/qifdumper
deleted file mode 100644
index b70ef9b..0000000
--- a/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/examples/qifdumper
+++ /dev/null
@@ -1,46 +0,0 @@
-use Finance::QIF;
-
-if ( $#ARGV != 0 ) {
-    print STDERR "USAGE: qifdumper <inputfile>\n";
-    exit;
-}
-
-my $qif = Finance::QIF->new(
-    file       => $ARGV[0],
-    autodetect => 1
-);
-
-while ( my $record = $qif->next() ) {
-    print "Header: " . $record->{header} . "\n";
-    foreach my $key ( keys %{$record} ) {
-        next
-          if ( $key eq "header"
-            || $key eq "splits"
-            || $key eq "budget"
-            || $key eq "prices" );
-        print "     " . $key . ": " . $record->{$key} . "\n";
-    }
-    if ( exists( $record->{splits} ) ) {
-        foreach my $split ( @{ $record->{splits} } ) {
-            foreach my $key ( keys %{$split} ) {
-                print "     Split: " . $key . ": " . $split->{$key} . "\n";
-            }
-        }
-    }
-    if ( exists( $record->{budget} ) ) {
-        print "     budget: ";
-        foreach my $amount ( @{ $record->{budget} } ) {
-            print " " . $amount;
-        }
-        print "\n";
-    }
-    if ( exists( $record->{prices} ) ) {
-        print "     Date     Close   Max     Min     Volume\n";
-        $format = "     %8s %7.2f %7.2f %7.2f %-8d\n";
-        foreach my $price ( @{ $record->{prices} } ) {
-            printf( $format,
-                $price->{"date"}, $price->{"close"}, $price->{"max"},
-                $price->{"min"},  $price->{"volume"} );
-        }
-    }
-}
diff --git a/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/examples/readwrite b/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/examples/readwrite
deleted file mode 100644
index 72ffa6c..0000000
--- a/debian/libfinance-qif-perl/usr/share/doc/libfinance-qif-perl/examples/readwrite
+++ /dev/null
@@ -1,28 +0,0 @@
-use Finance::QIF;
-
-if ( $#ARGV != 1 ) {
-    print STDERR "USAGE: readwrite <inputfile> <outputfile>\n";
-    exit;
-}
-
-my $in = Finance::QIF->new(
-    file       => $ARGV[0],
-    autodetect => 1
-);
-
-my $out = Finance::QIF->new(
-    file             => ">" . $ARGV[1],
-    record_separator => $in->record_separator
-);
-
-my $header = "";
-while ( my $record = $in->next() ) {
-    if ( $header ne $record->{header} ) {
-        $out->header( $record->{header} );
-        $header = $record->{header};
-    }
-    $out->write($record);
-}
-
-$in->close();
-$out->close();
diff --git a/debian/libfinance-qif-perl/usr/share/man/man3/Finance::QIF.3pm.gz b/debian/libfinance-qif-perl/usr/share/man/man3/Finance::QIF.3pm.gz
deleted file mode 100644
index 14e7ce2..0000000
Binary files a/debian/libfinance-qif-perl/usr/share/man/man3/Finance::QIF.3pm.gz and /dev/null differ
diff --git a/debian/libfinance-qif-perl/usr/share/perl5/Finance/QIF.pm b/debian/libfinance-qif-perl/usr/share/perl5/Finance/QIF.pm
deleted file mode 100644
index aaf0911..0000000
--- a/debian/libfinance-qif-perl/usr/share/perl5/Finance/QIF.pm
+++ /dev/null
@@ -1,1358 +0,0 @@
-package Finance::QIF;
-
-use 5.006;
-use strict;
-use warnings;
-use Carp;
-use IO::File;
-
-our $VERSION = '3.02';
-$VERSION = eval $VERSION;
-
-my %noninvestment = (
-    "D" => "date",
-    "T" => "transaction",
-    "U" => "total",         #Quicken 2005 added this which is usually the same
-                            #as T but can sometimes be higher.
-    "C" => "status",
-    "N" => "number",
-    "P" => "payee",
-    "M" => "memo",
-    "A" => "address",
-    "L" => "category",
-    "S" => "splits"
-);
-
-my %split = (
-    "S" => "category",
-    "E" => "memo",
-    '$' => "amount"
-);
-
-my %investment = (
-    "D" => "date",
-    "N" => "action",
-    "Y" => "security",
-    "I" => "price",
-    "Q" => "quantity",
-    "T" => "transaction",
-    "U" => "total",         #Quicken 2005 added this which is usually the same
-                            #as T but can sometimes be higher.
-    "C" => "status",
-    "P" => "text",
-    "M" => "memo",
-    "O" => "commission",
-    "L" => "account",
-    '$' => "amount"
-);
-
-my %account = (
-    "N" => "name",
-    "D" => "description",
-    "L" => "limit",
-    "X" => "tax",
-    "A" => "note",
-    "T" => "type",
-    "B" => "balance"
-);
-
-my %category = (
-    "N" => "name",
-    "D" => "description",
-    "B" => "budget",
-    "E" => "expense",
-    "I" => "income",
-    "T" => "tax",
-    "R" => "schedule"
-);
-
-my %class = (
-    "N" => "name",
-    "D" => "description"
-);
-
-my %memorized = (
-    "K" => "type",
-    "T" => "transaction",
-    "U" => "total",        #Quicken 2005 added this which is usually the same as
-                           #as T but can sometimes be higher.
-    "C" => "status",
-    "P" => "payee",
-    "M" => "memo",
-    "A" => "address",
-    "L" => "category",
-    "S" => "splits",
-    "N" => "action",       #Quicken 2006 added N, Y, I, Q, $ for investment
-    "Y" => "security",
-    "I" => "price",
-    "Q" => "quantity",
-    '$' => "amount",
-    "1" => "first",
-    "2" => "years",
-    "3" => "made",
-    "4" => "periods",
-    "5" => "interest",
-    "6" => "balance",
-    "7" => "loan"
-);
-
-my %security = (
-    "N" => "security",
-    "S" => "symbol",
-    "T" => "type",
-    "G" => "goal",
-);
-
-my %budget = (
-    "N" => "name",
-    "D" => "description",
-    "E" => "expense",
-    "I" => "income",
-    "T" => "tax",
-    "R" => "schedule",
-    "B" => "budget"
-);
-
-my %payee = (
-    "P" => "name",
-    "A" => "address",
-    "C" => "city",
-    "S" => "state",
-    "Z" => "zip",
-    "Y" => "country",
-    "N" => "phone",
-    "#" => "account"
-);
-
-my %prices = (
-    "S" => "symbol",
-    "P" => "price"
-);
-
-my %price = (
-    "C" => "close",
-    "D" => "date",
-    "X" => "max",
-    "I" => "min",
-    "V" => "volume"
-);
-
-my %nofields = ();
-
-my %header = (
-    "Type:Bank"         => \%noninvestment,
-    "Type:Cash"         => \%noninvestment,
-    "Type:CCard"        => \%noninvestment,
-    "Type:Invst"        => \%investment,
-    "Type:Oth A"        => \%noninvestment,
-    "Type:Oth L"        => \%noninvestment,
-    "Account"           => \%account,
-    "Type:Cat"          => \%category,
-    "Type:Class"        => \%class,
-    "Type:Memorized"    => \%memorized,
-    "Type:Security"     => \%security,
-    "Type:Budget"       => \%budget,
-    "Type:Payee"        => \%payee,
-    "Type:Prices"       => \%prices,
-    "Option:AutoSwitch" => \%nofields,
-    "Option:AllXfr"     => \%nofields,
-    "Clear:AutoSwitch"  => \%nofields
-);
-
-sub new {
-    my $class = shift;
-    my %opt   = @_;
-    my $self  = {};
-
-    $self->{debug}            = $opt{debug}            || 0;
-    $self->{autodetect}       = $opt{autodetect}       || 0;
-    $self->{trim_white_space} = $opt{trim_white_space} || 0;
-    $self->{record_separator} = $opt{record_separator} || $/;
-
-    bless( $self, $class );
-
-    if ( $opt{file} ) {
-        $self->file( $opt{file} );
-        $self->open;
-    }
-    return $self;
-}
-
-sub file {
-    my $self = shift;
-    if (@_) {
-        my @file = ( ref( $_[0] ) eq "ARRAY" ? @{ shift @_ } : (), @_ );
-        $self->{file} = [@file];
-    }
-    if ( $self->{file} ) {
-        return wantarray ? @{ $self->{file} } : $self->{file}->[0];
-    }
-    else {
-        return undef;
-    }
-}
-
-sub record_separator {
-    my $self = shift;
-    return $self->{record_separator};
-}
-
-sub _filehandle {
-    my $self = shift;
-    if (@_) {
-        my @args = @_;
-        $self->{_filehandle} = IO::File->new(@args)
-          or croak("Failed to open file '$args[0]': $!");
-        binmode( $self->{_filehandle} );
-        $self->{_linecount} = 0;
-    }
-    if ( !$self->{_filehandle} ) {
-        croak("No filehandle available");
-    }
-    return $self->{_filehandle};
-}
-
-sub open {
-    my $self = shift;
-    if (@_) {
-        $self->file(@_);
-    }
-    if ( $self->file ) {
-        $self->_filehandle( $self->file );
-        if ( $self->{autodetect} ) {
-            if ( $self->_filehandle->seek( -2, 2 ) ) {
-                my $buffer = "";
-                $self->_filehandle->read( $buffer, 2 );
-                if ( $buffer eq "\015\012" ) {
-                    $self->{record_separator} = "\015\012";
-                }
-                elsif ( $buffer =~ /\012$/ ) {
-                    $self->{record_separator} = "\012";
-                }
-                elsif ( $buffer =~ /\015$/ ) {
-                    $self->{record_separator} = "\015";
-                }
-            }
-        }
-        $self->reset();
-    }
-    else {
-        croak("No file specified");
-    }
-}
-
-sub next {
-    my $self = shift;
-    my %object;
-    my $continue = 1;
-    my $csplit;    # Need to keep track of current split for adding split values
-    if ( $self->_filehandle->eof ) {
-        return undef;
-    }
-    if ( exists( $self->{header} ) ) {
-        $object{header} = $self->{header};
-    }
-    while ( !$self->_filehandle->eof && $continue ) {
-        my $line = $self->_getline;
-        next if ( $line =~ /^\s*$/ );
-        my ( $field, $value ) = $self->_parseline($line);
-        if ( $field eq '!' ) {
-            $value =~ s/\s+$//;    # Headers sometimes have trailing white space
-            $self->{header} = $value;
-            $object{header} = $value;
-            if ( !exists( $header{$value} ) ) {
-                $self->_warning("Unknown header format '$value'");
-            }
-        }
-        else {
-            if ( $field eq '^' ) {
-                $continue = 0;
-            }
-            else {
-                if (
-                    !exists( $header{ $object{header} } )
-                    && !(
-                        exists( $header{"split"} )
-                        && (   $object{header} eq "noninvestment"
-                            || $object{header} eq "memorized" )
-                    )
-                  )
-                {
-                    $self->_warning(
-                        "Unknown header '$object{header}' can't process line");
-                }
-                elsif ( $object{header} eq "Type:Prices" ) {
-                    $object{"symbol"} = $field;
-                    push( @{ $object{"prices"} }, $value );
-                }
-                elsif ($field eq 'A'
-                    && $header{ $object{header} }{$field} eq "address" )
-                {
-                    if ( $self->{header} eq "Type:Payee" ) {
-
-                        # The address fields are numbered for this record type
-                        if ( length($value) == 0 ) {
-                            $self->_warning( 'Improper address record for '
-                                  . 'this record type' );
-                        }
-                        else {
-                            $value = substr( $value, 1 );
-                        }
-                    }
-                    if ( exists( $object{ $header{ $object{header} }{$field} } )
-                        && $object{ $header{ $object{header} }{$field} } ne "" )
-                    {
-                        $object{ $header{ $object{header} }{$field} } .= "\n";
-                    }
-                    $object{ $header{ $object{header} }{$field} } .= $value;
-                }
-                elsif ($field eq 'S'
-                    && $header{ $object{header} }{$field} eq "splits" )
-                {
-                    my %mysplit;    # We assume "S" always appears first
-                    $mysplit{ $split{$field} } = $value;
-                    push( @{ $object{splits} }, \%mysplit );
-                    $csplit = \%mysplit;
-                }
-                elsif ( ( $field eq 'E' || $field eq '$' ) && $csplit ) {
-
-                    # this currently assumes the "S" was found first
-                    $csplit->{ $split{$field} } = $value;
-                }
-                elsif ($field eq 'B'
-                    && $header{ $object{header} }{$field} eq "budget" )
-                {
-                    push( @{ $object{budget} }, $value );
-                }
-                elsif ( exists( $header{ $object{header} }{$field} ) ) {
-                    $object{ $header{ $object{header} }{$field} } = $value;
-                }
-                else {
-                    $self->_warning("Unknown field '$field'");
-                }
-            }
-        }
-    }
-
-    # Must check that we have a valid record to return
-    if ( scalar( keys %object ) > 1 ) {
-        return \%object;
-    }
-    else {
-        return undef;
-    }
-}
-
-sub _parseline {
-    my $self = shift;
-    my $line = shift;
-    my @result;
-    if (   $line !~ /^!/
-        && exists( $self->{header} )
-        && $self->{header} eq "Type:Prices" )
-    {
-        my %price;
-        $line =~ s/\"//g;
-        my @data = split( ",", $line );
-        $result[0]      = $data[0];
-        $price{"close"} = $data[1];
-        $price{"date"}  = $data[2];
-        if ( scalar(@data) > 3 ) {
-            $price{"max"}    = $data[3];
-            $price{"min"}    = $data[4];
-            $price{"volume"} = $data[5];
-        }
-        $result[1] = \%price;
-    }
-    else {
-        $result[0] = substr( $line, 0, 1 );
-        $result[1] = substr( $line, 1 );
-        if ( $self->{trim_white_space} ) {
-            $result[1] =~ s/^\s*(.*?)\s*$/$1/;
-        }
-    }
-    return @result;
-}
-
-sub _getline {
-    my $self = shift;
-    local $/ = $self->record_separator;
-    my $line = $self->_filehandle->getline;
-    chomp($line);
-    $self->{_linecount}++;
-    return $line;
-}
-
-sub _warning {
-    my $self    = shift;
-    my $message = shift;
-    carp(   $message
-          . " in file '"
-          . $self->file
-          . "' line "
-          . $self->{_linecount} );
-}
-
-sub header {
-    my $self   = shift;
-    my $header = shift;
-    my $fh     = $self->_filehandle;
-    local $\ = $self->{record_separator};
-    print( $fh "!", $header );
-
-    # used during write to validate passed record is appropriate for
-    # current header also generate reverse lookup for mapping record
-    # values to file key identifier.
-    $self->{currentheader} = $header;
-    foreach my $key ( keys %{ $header{$header} } ) {
-        $self->{reversemap}{ $header{$header}{$key} } = $key;
-    }
-    if ( exists( $header{$header}{S} ) && $header{$header}{S} eq "splits" ) {
-        foreach my $key ( keys %split ) {
-            $self->{reversesplitsmap}{ $split{$key} } = $key;
-        }
-    }
-
-    $self->{_linecount}++;
-    if ( !exists( $header{$header} ) ) {
-        $self->_warning("Unsupported header '$header' written to file");
-    }
-}
-
-sub write {
-    my $self   = shift;
-    my $record = shift;
-    if ( $record->{header} eq $self->{currentheader} ) {
-        if ( $record->{header} eq "Type:Prices" ) {
-            if ( exists( $record->{symbol} ) && exists( $record->{prices} ) ) {
-                foreach my $price ( @{ $record->{prices} } ) {
-                    if (   exists( $price->{close} )
-                        && exists( $price->{date} )
-                        && exists( $price->{max} )
-                        && exists( $price->{min} )
-                        && exists( $price->{volume} ) )
-                    {
-                        $self->_writeline(
-                            join( ",",
-                                '"' . $record->{symbol} . '"',
-                                $price->{close},
-                                '"' . $price->{date} . '"',
-                                $price->{max},
-                                $price->{min},
-                                $price->{volume} )
-                        );
-                    }
-                    elsif (exists( $price->{close} )
-                        && exists( $price->{date} ) )
-                    {
-                        $self->_writeline(
-                            join( ",",
-                                '"' . $record->{symbol} . '"',
-                                $price->{close},
-                                '"' . $price->{date} . '"' )
-                        );
-                    }
-                    else {
-                        $self->_warning("Prices missing a required field");
-                    }
-                }
-                $self->_writeline("^");
-            }
-            else {
-                $self->_warning("Record missing 'symbol' or 'prices'");
-            }
-        }
-        else {
-            foreach my $value ( keys %{$record} ) {
-                next
-                  if (
-                       $value eq "header"
-                    || $value eq "splits"
-                    || (   $self->{currentheader} eq "Type:Memorized"
-                        && $value eq "transaction" )
-                  );
-                if ( exists( $self->{reversemap}{$value} ) ) {
-                    if ( $value eq "address" ) {
-                        my @lines = split( "\n", $record->{$value} );
-                        if ( $self->{currentheader} eq "Type:Payee" ) {
-
-                          # The address fields are numbered for this record type
-                            for ( my $count = 0 ; $count < 3 ; $count++ ) {
-                                if ( $count <= $#lines ) {
-                                    $self->_writeline( "A", $count,
-                                        $lines[$count] );
-                                }
-                                else {
-                                    $self->_writeline( "A", $count );
-                                }
-                            }
-                        }
-                        else {
-                            for ( my $count = 0 ; $count < 6 ; $count++ ) {
-                                if ( $count <= $#lines ) {
-                                    $self->_writeline( "A", $lines[$count] );
-                                }
-                                else {
-                                    $self->_writeline("A");
-                                }
-                            }
-                        }
-                    }
-                    elsif ( $value eq "budget" ) {
-                        foreach my $amount ( @{ $record->{$value} } ) {
-                            $self->_writeline( $self->{reversemap}{$value},
-                                $amount );
-                        }
-                    }
-                    else {
-                        $self->_writeline( $self->{reversemap}{$value},
-                            $record->{$value} );
-                    }
-                }
-                else {
-                    $self->_warning( "Unsupported field '$value'"
-                          . " found in record ignored" );
-                }
-            }
-            if ( exists( $record->{splits} ) ) {
-                foreach my $s ( @{ $record->{splits} } ) {
-                    foreach my $key ( 'category', 'memo', 'amount' ) {
-                        if ( exists( $s->{$key} ) ) {
-                            $self->_writeline( $self->{reversesplitsmap}{$key},
-                                $s->{$key} );
-                        }
-                        else {
-                            $self->_writeline(
-                                $self->{reversesplitsmap}{$key} );
-                        }
-                    }
-                }
-            }
-            if ( $self->{currentheader} eq "Type:Memorized"
-                && exists( $record->{transaction} ) )
-            {
-                $self->_writeline( $self->{reversemap}{"transaction"},
-                    $record->{"transaction"} );
-            }
-            $self->_writeline("^");
-        }
-    }
-    else {
-        $self->_warning( "Record header type '"
-              . $record->{header}
-              . "' does not match current output header type "
-              . $self->{currentheader}
-              . "." );
-    }
-}
-
-sub _writeline {
-    my $self = shift;
-    my $fh   = $self->_filehandle;
-    local $\ = $self->{record_separator};
-    print( $fh @_ );
-    $self->{_linecount}++;
-}
-
-sub reset {
-    my $self = shift;
-    map( $self->{$_} = undef,    # initialize internally used variables
-        qw(_linecount header currentheader reversemap reversesplitsmap) );
-    $self->_filehandle->seek( 0, 0 );
-}
-
-sub close {
-    my $self = shift;
-    $self->_filehandle->close;
-}
-
-1;
-
-__END__
-
-=head1 NAME
-
-Finance::QIF - Parse and create Quicken Interchange Format files
-
-=head1 SYNOPSIS
-
-  use Finance::QIF;
-  
-  my $qif = Finance::QIF->new( file => "test.qif" );
-  
-  while ( my $record = $qif->next ) {
-      print( "Header: ", $record->{header}, "\n" );
-      foreach my $key ( keys %{$record} ) {
-          next
-            if ( $key eq "header"
-              || $key eq "splits"
-              || $key eq "budget"
-              || $key eq "prices" );
-          print( "     ", $key, ": ", $record->{$key}, "\n" );
-      }
-      if ( exists( $record->{splits} ) ) {
-          foreach my $split ( @{ $record->{splits} } ) {
-              foreach my $key ( keys %{$split} ) {
-                  print( "     Split: ", $key, ": ", $split->{$key}, "\n" );
-              }
-          }
-      }
-      if ( exists( $record->{budget} ) ) {
-          print("     Budget: ");
-          foreach my $amount ( @{ $record->{budget} } ) {
-              print( " ", $amount );
-          }
-          print("\n");
-      }
-      if ( exists( $record->{prices} ) ) {
-          print("     Date     Close   Max     Min     Volume\n");
-          $format = "     %8s %7.2f %7.2f %7.2f %-8d\n";
-          foreach my $price ( @{ $record->{prices} } ) {
-              printf( $format,
-                  $price->{"date"}, $price->{"close"}, $price->{"max"},
-                  $price->{"min"},  $price->{"volume"} );
-          }
-      }
-  }
-
-=head1 DESCRIPTION
-
-Finance::QIF is a module for working with QIF (Quicken Interchange
-Format) files in Perl.  This module reads QIF data records from a file
-passing each successive record to the caller for processing.  This
-module also has the capability of writing QIF records to a file.
-
-The QIF file format typically consists of a header containing a record
-or transaction type, followed by associated data records.  Within a
-file there may be multiple headers.  Headers are usually followed by
-data records, however data is not required to always follow a header.
-
-A hash reference is returned for each record read from a file.  The
-hash will have a "header" value which contains the header type that
-was read along with all supported values found for that record.  If a
-value is not specified in the data file, the value will not exist in
-this hash.
-
-No processing or validation is done on values found in files or data
-structures to try and convert them into appropriate types and formats.
-It is expected that users of this module or extensions to this module
-will do any additional processing or validation as required.
-
-=head2 RECORD TYPES & VALUES
-
-The following record types are currently supported by this module:
-
-=over
-
-=item Type:Bank, Type:Cash, Type:CCard, Type:Oth A, Type:Oth L
-
-These are non investment ledger transactions.  All of these record
-types support the following values.
-
-=over
-
-=item date
-
-Date of transaction.
-
-=item transaction
-
-Dollar amount of transaction.
-
-=item total
-
-Dollar amount of transaction. This is generally the same as transaction but
-in some cases can be higher. (Introduced in Quicken 2005 for windows)
-
-=item status
-
-Reconciliation status of transaction.
-
-=item number
-
-Check number of transaction.
-
-=item payee
-
-Who the transaction was made to.
-
-=item memo
-
-Additional text describing the transaction.
-
-=item address
-
-Address of payee.
-
-=item category
-
-Category the transaction is assigned to.
-
-=item splits
-
-If the transaction contains splits this will be defined and consist of
-an array of hash references.  With each split potentially having the
-following values.
-
-=over
-
-=item category
-
-Category the split is assigned to.
-
-=item memo
-
-Additional text describing the split.
-
-=item amount
-
-Dollar amount of split.
-
-=back
-
-=back
-
-=item Type:Invst
-
-This is for Investment ledger transactions.  The following values are
-supported for this record type.
-
-=over
-
-=item date
-
-Date of transaction.
-
-=item action
-
-Type of transaction like buy, sell, ...
-
-=item security
-
-Security name of transaction.
-
-=item price
-
-Price of security at time of transaction.
-
-=item quantity
-
-Number of shares purchased.
-
-=item transaction
-
-Cost of shares in transaction.
-
-=item status
-
-Reconciliation status of transaction.
-
-=item text
-
-Text for non security specific transaction.
-
-=item memo
-
-Additional text describing transaction.
-
-=item commission
-
-Commission fees related to transaction.
-
-=item account
-
-Account related to security specific transaction.
-
-=item amount
-
-Dollar amount of transaction.
-
-=item total
-
-Dollar amount of transaction. This is generally the same as amount but
-in some cases can be higher. (Introduced in Quicken 2005 for windows)
-
-=back
-
-=item Account
-
-This is a list of accounts.  In cases where it is used in a file by
-first providing one account record followed by a investment or
-non-investment record type and its transactions, it means that that
-set of transactions is related to the specified account.  In other
-cases it can just be a sequence of Account records.
-
-Each account record supports the following values.
-
-=over
-
-=item name
-
-Account name.
-
-=item description
-
-Account description.
-
-=item limit
-
-Account limit usually for credit card accounts that have some upper
-limit over credit.
-
-=item tax
-
-Defined if the account is tax related.
-
-=item note
-
-Additional information about the account.
-
-=item type
-
-Type of account.
-
-=item balance
-
-Current balance of account.
-
-=back
-
-=item Type:Cat
-
-This is a list of categories.  The following values are supported for
-category records.
-
-=over
-
-=item name
-
-Name of category.
-
-=item description
-
-Description of category.
-
-=item budget
-
-An array of 12 values Jan-Dec to represent the budget amount for each
-month.
-
-=item expense
-
-Usually exists if the category is an expense account however this is
-often a default assumed value and doesn't show up in files.
-
-=item income
-
-Exists if the category is an income account.
-
-=item tax
-
-Exists if this category is tax related.
-
-=item schedule
-
-If this category is tax related this specifies what tax schedule it is
-related if defined.
-
-=back
-
-=item Type:Class
-
-This is a list of classes.  The following values are supported for
-class records.
-
-=over
-
-=item name
-
-Name of class.
-
-=item description
-
-Description of class.
-
-=back
-
-=item Type:Memorized
-
-This is a list of memorized transactions.  The following values are
-supported for memorized transaction records.
-
-=over
-
-=item type
-
-Type of memorized transaction "C" for check, "D" for deposit, "P" for
-payment, "I" for investment, and "E" for electronic payee.
-
-=item transaction
-
-Dollar amount of transaction.
-
-=item total
-
-Dollar amount of transaction. This is generally the same as amount but
-in some cases can be higher. (Introduced in Quicken 2005 for windows)
-
-=item status
-
-Reconciliation status of transaction.
-
-=item payee
-
-Who the transaction was made to.
-
-=item memo
-
-Additional text describing the transaction.
-
-=item address
-
-Address of payee.
-
-=item category
-
-Category the transaction is assigned to.
-
-=item action
-
-Type of investment transaction like buty, sell, ... (Inroduced in Quicken
-2006 for windows)
-
-=item security
-
-Security name of transaction. (Inroduced in Quicken 2006 for windows)
-
-=item price
-
-Price of security. (Inroduced in Quicken 2006 for windows)
-
-=item quantity
-
-Quantity of security. (Inroduced in Quicken 2006 for windows)
-
-=item amount
-
-Dollar amount of transaction. (Introduced in Quicken 2006 for windows)
-
-=item splits
-
-If the transaction contains splits this will be defined and consist of
-an array of hashes.  With each split potentially having the following
-values.
-
-=over
-
-=item category
-
-Category the split is assigned to.
-
-=item memo
-
-Additional text describing the split.
-
-=item amount
-
-Dollar amount of split.
-
-=back
-
-=item first
-
-First payment date.
-
-=item years
-
-Total years for loan.
-
-=item made
-
-Number of payments already made.
-
-=item periods
-
-Number of periods per year.
-
-=item interest
-
-Interest rate of loan.
-
-=item balance
-
-Current loan balance.
-
-=item loan
-
-Original loan amount.
-
-=back
-
-=item Type:Security
-
-This is a list of securities.  The following values are supported for
-security records.
-
-=over
-
-=item security
-
-Security name.
-
-=item symbol
-
-Security symbol.
-
-=item type
-
-Security type.
-
-=item goal
-
-Security goal.
-
-=back
-
-=item Type:Budget
-
-This is a list of budget values for categories.  The following values
-are supported for budget records.
-
-=over
-
-=item name
-
-Category name of budgeted item.
-
-=item description
-
-Category Description of budgeted item.
-
-=item expense
-
-Usually exists if the category is an expense account however this is
-often a default assumed value and doesn't show up in files.
-
-=item income
-
-Exists if the category is an income account.
-
-=item tax
-
-Exists if this category is tax related.
-
-=item schedule
-
-If this category is tax related this specifies what tax schedule it is
-related if defined.
-
-=item budget
-
-An array of 12 values Jan-Dec to represent the budget amount for each
-month.
-
-=back
-
-=item Type:Payee
-
-This is a list online payee accounts.  The following values are
-supported for online payee account records.
-
-=over
-
-=item name
-
-Name of payees.
-
-=item address
-
-Address of payee.
-
-=item city
-
-City of payee.
-
-=item state
-
-State of payee
-
-=item zip
-
-Zipcode of payee.
-
-=item country
-
-Country of payee.
-
-=item phone
-
-Phone number of payee.
-
-=item account
-
-Account number for payee transaction.
-
-=back
-
-=item Type:Prices
-
-This is a list of prices for a security.  The following values are
-supported for security prices records.
-
-=over
-
-=item symbol
-
-Security Symbol.
-
-=item prices
-
-An array of hashes.  With each hash having the following values.
-
-=over
-
-=item date
-
-Date of security values.
-
-=item close
-
-Close value of security for the date.
-
-=item max
-
-Max value of security for the date.
-
-=item min
-
-Min value of security for the date.
-
-=item volume
-
-Number of shares of security exchanged for the date.
-
-=back
-
-=back
-
-=item Option:AllXfr, Option:AutoSwitch, Clear:AutoSwitch
-
-These record types aren't related to transactions but instead provided
-ways to control how Quicken processes the QIF file.  They have no
-impact on how this software operates and are ignored when found.
-
-=back
-
-Note: If this software finds unsupported record types or values in a
-data file a warning will be generated containing information on what
-unexpected value was found.
-
-=head1 METHODS
-
-=head2 new()
-
-Creates a new instance of Finance::QIF.  Supports the following
-initializing values.
-
-  my $qif = Finance::QIF->new( file => "myfile", debug => 1 );
-
-If the file is specified it will be opened on new.
-
-=over
-
-=item file
-
-Specifies file to use for processing.  See L</file()> for details.
-
-  my $in = Finance::QIF->new( file => "myfile" );
-OR
-  my $in = Finance::QIF->new( file => [ "myfile", "<:crlf" ] );
-
-For output files, be sure to open the file in write mode.  For example:
-
-  my $out = Finance::QIF->new( file => ">myfile" );
-
-=item record_separator
-
-Can be used to redefine the QIF record separator.  Default is $/.
-
-  my $in = Finance::QIF->new( record_separator => "\012" );
-
-Note: For MacOS X it will most likely be necessary to change this to
-"\015".  Quicken on MacOS X generates files with "\015" as the separator
-which is typical of Mac however the native perl in MacOS X is unix
-based and uses the default unix separator which is "\012".  See
-L</autodetect> for another option.
-
-=item autodetect
-
-Enable auto detection of the record separator based on the file
-contents.  Default is "0".
-
-  my $in = Finance::QIF->new( autodetect => 1 );
-
-Perl uses $/ to define line separators for text files.  Perl sets this
-value according to the OS perl is running on:
-
-  Windows="\015\012"
-  Mac="\015"
-  Unix="\012"
-
-In many cases you may find yourself with text files that do not match
-the OS.  In these cases Finance::QIF by default will not process that
-QIF file correctly. This feature is an attempt to help with the most
-common cases of having the wrong text file for the OS Finance::QIF is
-running on.
-
-This feature depends on being able to seek to the end of the file and
-reading the last 2 characters to determine the proper separator. If a
-seek can not be performed or the last 2 characters are not a proper
-separator the record_separator will default to $/ or the value passed
-in. If a valid record_separator is found then it will be set according
-to what was in the file.
-
-This code requires a file use a consistent line separator. If you find
-your self dealing with unusual files containing mixed separators you
-need to first Normalize the file to a consistent separator.
-
-Normalizing a text file to have a consistent line separator is done in
-modules like  File::LocalizeNewlines or Template::Parser::LocalizeNewlines
-so if you are having issues with trying to process poorly formated text
-files look at preprocessing them with something like those before passing
-on to Finance::QIF.
-
-=item trim_white_space
-
-Can be used to remove leading and trailing white space from values
-returned. Default is "0".
-
-  my $qif = Finance::QIF->new( trim_white_space => 1 );
-
-=item debug
-
-Can be used to output debug information.  Default is "0".
-
-  my $qif = Finance::QIF->new( debug => 1 );
-
-=back
-
-=head2 file()
-
-Specify file name and optionally additional parameters that will be
-used to obtain a filehandle.  The argument can be a filename (SCALAR),
-an ARRAY reference, or an ARRAY whose values must be valid arguments
-for passing to IO::File->new.
-
-  $qif->file( "myfile" );
- OR
-  $qif->file( [ "myfile", "<:crlf" ] );
- OR
-  $qif->file( "myfile", "<:crlf" );
-
-For output files, be sure to open the file in write mode.
-
-=head2 record_separator()
-
-Returns the currently used record_separator.  This is used primarly in
-situations where you open a QIF file with autodetect and then want to
-write out a QIF file in the same format.
-
-  my $in  = Finance::QIF->new( file => "input.qif", autodetect => 1 );
-  my $out = Finance::QIF->new( file => ">write.qif",
-                               record_separator => $in->record_separator );
-
-=head2 open()
-
-Open already specified file.
-
-  $qif->open();
-
-Open also supports the same arguments as L</file()>.
-
-=head2 next()
-
-For input files return the next record in the QIF file.
-
-  my $record = $in->next();
-
-Returns undef if no more records are available.
-
-=head2 header()
-
-For output files use to output the passed header for records that will
-then be written with write.
-
-  $out->header( "Type:Bank" );
-
-See L<RECORD TYPES & VALUES> for list of possible record types that
-can be passed.
-
-=head2 write()
-
-For output files use to output the passed record to the file.
-
-  $out->write( $record );
-
-=head2 reset()
-
-Resets the filehandle so the records can be read again from the
-beginning of the file.
-
-  $qif->reset();
-
-=head2 close()
-
-Closes the open file.
-
-  $qif->close();
-
-=head1 EXAMPLES
-
-Read an existing QIF file then write out to new QIF file.
-
-  my $in  = Finance::QIF->new( file => "input.qif" );
-  my $out = Finance::QIF->new( file => ">write.qif" );
-  
-  my $header = "";
-  while ( my $record = $in->next() ) {
-      if ( $header ne $record->{header} ) {
-          $out->header( $record->{header} );
-          $header = $record->{header};
-      }
-      $out->write($record);
-  }
-  
-  $in->close();
-  $out->close();
-
-=head1 SEE ALSO
-
-L<Carp>, L<IO::File>
-
-Quicken Interchange Format (QIF) specification
-L<http://web.intuit.com/support/quicken/docs/d_qif.html>
-
-=head1 ACKNOWLEDGEMENTS
-
-Simon Cozens C<simon at cpan.org>, Author of original Finance::QIF
-
-Nathan McFarland C<nmcfarl at cpan.org>, Maintainer of original Finance::QIF
-
-=head1 AUTHORS
-
-Matthew McGillis E<lt>matthew at mcgillis.orgE<gt> L<http://www.mcgillis.org/>
-
-Phil Lobbes E<lt>phil at perkpartners dot comE<gt>
-
-Project maintained at L<http://sourceforge.net/projects/finance-qif>
-
-=head1 COPYRIGHT
-
-Copyright (C) 2006-2008 by Matthew McGillis.  All rights reserved.
-
-=head1 LICENSE
-
-This library is free software; you can redistribute it and/or modify
-it under the same terms as Perl itself.
-
-=cut
diff --git a/pm_to_blib b/pm_to_blib
deleted file mode 100644
index e69de29..0000000

-- 




More information about the Pkg-perl-cvs-commits mailing list