版权信息书 名: IntermediatePerl(影印版)
作者:(美国)(Schwartz.R.L.)施瓦茨

(美国)(Phoenix.T.)菲尼克斯
出版社:东南大学出版社
出版时间: 2008
ISBN: 9787564112356
开本: 16
定价: 48.00 元
内容简介从一个Perl爱好者到一个Perl程序员。《IntermediatePerl》将教您如何把Perl作为编程语言来使用,而不仅只是作为一种脚本语言。
Perl是一种灵活多变、功能强大的编程语言,可以应用在从系统管理到网络编程再到数据库操作等很多方面。人们常说Perl让容易的事情变简单、让困难的事情变得可行。《IntermediatePerl》正是关于如何将技能从处理简单任务跃升到胜任困难任务的书籍。
《IntermediatePerl》提供对Perl中级编程优雅而仔细的介绍。由畅销的《学习Perl》作者所著,本书提供了《学习Perl》没有涵盖的内容。
主题包括:
包和命名空间
引用和作用域
操作复杂数据结构
面向对象编程
编写和使用模块
测试Perl代码
为CPAN贡献代码
参照《学习Perl》的成功编排格式,本书的每一章都短小到可以在一到两个小时内读完,并在结束时提供一系列练习题帮助您实践刚刚学到的知识。使用本书,您只需熟悉《学习Perl》的内容并有更进一步学习的决心。
对于不同的人而言Perl是一种不同的语言。对于某些人而言,它只是快速编写脚本的工具,但对于另外的人来说,它就是一种功能完整的面向对象语言。Perl被应用在各种任务当中,从对文本文件进行快速全局替换,到计算需要数星期才能完成处理的海量复杂科学数据。您的使用决定Perl的面貌。但不论您将Perl应用在什么方面,本书将帮助您让应用更加有效、高效和优雅。
《IntermediatePerl》是为了把Perl作为一种编程语言来学习,而不仅是为了写脚本而著。这本书把Perl爱好者变为Perl程序员。
编辑推荐“这是本多么闪耀夺目的Perl书籍啊这本书为那些渴望提高技能或者提升职业生涯的Perl程序员填补了空白。更为重要的是,看这本书有一种向大师学习的感觉。”
——RussellJ.T.Dyer,UnixReview.com
目录Foreword.xiii
Prefacexv
1.Introduction1
WhatShouldYouKnowAlready?2
WhatAboutAllThoseFootnotes?2
What’swiththeExercises?2
WhatIfI’maPerlCourseInstructor?3
2.IntermediateFoundations4
ListOperators4
TrappingErrorswitheval8
DynamicCodewitheval9
Exercises10
3.UsingModules11
TheStandardDistribution11
UsingModules12
FunctionalInterfaces12
SelectingWhattoImport13
Object-OrientedInterfaces14
AMoreTypicalObject-OrientedModule:Math::BigInt15
TheComprehensivePerlArchiveNetwork15
InstallingModulesfromCPAN16
SettingthePathattheRightTime17
Exercises19
4.IntroductiontoReferences21
PerformingtheSameTaskonManyArrays21
TakingaReferencetoanArray23
DereferencingtheArrayReference24
GettingOurBracesOff26
ModifyingtheArray26
NestedDataStructures27
SimplifyingNestedElementReferenceswithArrows29
ReferencestoHashes30
Exercises32
5.ReferencesandScoping34
MoreThanOneReferencetoData34
WhatIfThatWastheName?35
ReferenceCountingandNestedDataStructures36
WhenReferenceCountingGoesBad38
CreatinganAnonymousArrayDirectly40
CreatinganAnonymousHash42
Autovivification44
AutovivificationandHashes47
Exercises48
6.ManipulatingComplexDataStructures50
UsingtheDebuggertoViewComplexData50
ViewingComplexDatawithData::Dumper54
YAML56
StoringComplexDatawithStorable57
UsingthemapandgrepOperators59
ApplyingaBitofIndirection59
SelectingandAlteringComplexData60
Exercises62
7.SubroutineReferences63
ReferencingaNamedSubroutine63
AnonymousSubroutines68
Callbacks70
Closures70
ReturningaSubroutinefromaSubroutine72
ClosureVariablesasInputs75
ClosureVariablesasStaticLocalVariables75
Exercise77
8.FilehandleReferences.79
TheOldWay79
TheImprovedWay80
TheEvenBetterWay81
IO::Handle82
DirectoryHandleReferences86
Exercises87
9.PracticalReferenceTricks89
ReviewofSorting89
SortingwithIndices91
SortingEfficiently92
TheSchwartzianMulti-LevelSortwiththeRecursivelyDefinedata95
BuildingRecursivelyDefinedData96
DisplayingRecursivelyDefinedData98
Exercises99
10.BuildingLargerPrograms101
TheCurefortheCommonCode101
InsertingCodewitheval102
Usingdo103
Usingrequire105
requireand@INC106
TheProblemofNamespaceCollisions109
PackagesasNamespaceSeparators110
ScopeofaPackageDirective112
PackagesandLexicals113
Exercises113
11.IntroductiontoObjects115
IfWeCouldTalktotheAnimals...115
IntroducingtheMethodInvocationArrow117
TheExtraParameterofMethodInvocation118
CallingaSecondMethodtoSimplifyThings119
AFewNotesAbout@ISA120
OverridingtheMethods121
StartingtheSearchfromaDifferentPlace123
TheSUPERWayofDoingThings124
WhattoDowith@_124
WhereWeAreSoFar...124
Exercises125
12.ObjectswithData126
AHorseIsaHorse,ofCourseofCourse—orIsIt?126
InvokinganInstanceMethod127
AccessingtheInstanceData128
HowtoBuildaHorse128
InheritingtheConstructor129
MakingaMethodWorkwithEitherClassesorInstances..130
AddingParameterstoaMethod131
MoreInterestingInstances132
AHorseofaDifferentColor133
GettingOurDepositBack133
Don’tLookInsidetheBox135
FasterGettersandSetters136
GettersThatDoubleasSetters136
RestrictingaMethodtoClass-OnlyorInstance-Only137
Exercise137
13.ObjectDestruction139
CleaningUpAfterYourself139
NestedObjectDestruction141
BeatingaDeadHorse144
IndirectObjectNotation145
AdditionalInstanceVariablesinSubclasses147
UsingClassVariables149
WeakeningtheArgument150
Exercise152
14.SomeAdvancedObjectTopics154
UNIVERSALMethods154
TestingOurObjectsforGoodBehavior155
AUTOLOADasaLastResort156
UsingAUTOLOADforAccessors157
CreatingGettersandSettersMoreEasily158
MultipleInheritance160
Exercises161
15.Exporter162
WhatuseIsDoing162
ImportingwithExporter163
@EXPORTand@EXPORT_OK164
%EXPORT_TAGS165
xportinginaPrimarilyOOModule166
CustomImportRoutines168
Exercises169
16.WritingaDistribution171
There’sMoreThanOneWayToDoIt172
Usingh2xs173
EmbeddedDocumentation179
ControllingtheDistributionwithMakefile.PL183
AlternateInstallationLocations(PREFIX=...)184
Trivialmaketest185
Trivialmakeinstall186
Trivialmakedist186
UsingtheAlternateLibraryLocation187
Exercise188
17.EssentialTesting189
MoreTestsMeanBetterCode189
ASimpleTestScript190
TheArtofTesting191
TheTestHarness193
WritingTestswithTest::More195
TestingObject-OrientedFeatures197
ATestingTo-DoList199
SkippingTests200
MoreComplexTests(MultipleTestScripts)201
Exercise201
18.AdvancedTesting.203
TestingLargeStrings203
TestingFiles204
TestingSTDOUTorSTDERR205
UsingMockObjects208
TestingPOD209
CoverageTesting210
WritingYourOwnTest::*Modules211
Exercises214
19.ContributingtoCPAN.216
TheComprehensivePerlArchiveNetwork216
GettingPrepared216
PreparingYourDistribution217
UploadingYourDistribution218
AnnouncingtheModule219
TestingonMultiplePlatforms219
ConsiderWritinganArticleorGivingaTalk220
Exercise220
Appendix:AnswerstoExercises221
Index...249
……