《大型物流仿真实验》报告_第1页
《大型物流仿真实验》报告_第2页
《大型物流仿真实验》报告_第3页
《大型物流仿真实验》报告_第4页
《大型物流仿真实验》报告_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验一:通过型物流中心(Logistics Center)的模型构筑实验目的通过通过型物流中心的例子来学习利用部件生成器、传送带(直线、分流、弯曲)、部件消灭器、作业员、笼车等来构筑模型的方法。实验内容实验要作成使4种商品从投放口开始在传送带上流动,在分流点根据商品的种类进行分门别类使其按不同分流口流出后作业员把商品装入笼车的模型。实验步骤1.模型作成画面的设定点击Windows的开始按钮,点击|开始|程序|RaLCPro|,启动RaLC-Pro。在RaLC-Pro的启动画面中,点击菜单栏里的|文件|新建|或者工具栏中的新建按启动模型作成画面。 2.设备的表示点击设备栏的直线传送带按钮,使直线

2、传送带表示出来3.设备的复制点击直线传送带后其颜色变为白色。通常把这种情况说成“选择状态”。4.设备的连接(自动连接)连接2条直线传送带。传送带互相接近到一定程度后可自动地连接起来。5.弹出菜单的表示点击设备栏的右分流传送带按钮 , 则表示出右分流传送带。使用分流传送带可使传送过来的物体分成两个方向流动。使右分流传送带处于选择状态时,右点击鼠标后会表示一个菜单。这种菜单称为弹出菜单。6.属性的表示点击弹出菜单中的属性,使属性对话框表示出来。在属性中可对设备的速度、大小、颜色、形状等进行设定。各种各样的设备都有自己的属性。7.设备的旋转(属性)点击设备栏的右曲传送带按钮,则可表示出右曲传送带。8

3、.设备的旋转(弹出菜单)要使设备逆时针转90度、顺时针转90度、180度旋转时可利用弹出菜单来操作。点击设备栏的直线传送带按钮,使直线传送带表示出来。9.设备的连接(任意连接)将直线传送带和作业员连接起来。点击设备栏的作业员按钮, 使作业员表示出来。10.复数个设备的复制利用Cntl+C、Cntl+V可对复数个设备进行复制粘贴。11.部件生成器的条码设定打开新增加出来的部件生成器中的任意一个的弹出菜单,并打开属性窗口,将概要属性里的条码栏改成barcode002。可根据条码设定不同物品的各个搬运路线和存放场所。在本例中假设有4种不同物品,根据不同种类设定4个存放位置。12.颜色设定为了使容易分

4、辨,可进一步改变物体的颜色。点击色/形属性,点击颜色部分(初始值是金黄色)。13.分流传送带的条码设定为了使传送过来的4种物品依据其种类不同而流向不同,需对有两个分流口的3条分流传送带的条形码进行设定。首先选中组合化的设备,然后点击右键弹出菜单,选择解除组合菜单取消设备的组合。14.模型的保存点击菜单栏里的|文件|另存为|,将文件名输入为Lesson1.emu然后点击保存按钮。15.模型的模拟点击菜单栏里面的|模拟|开始|或者时间栏里的开始按钮,则可以看到货物被投放到传送带后从金黄色的部件生成器出来的货物流向最靠前的的笼车方向,从红色的部件生成器出来的货物流向正中央的笼车方向,从粉红色的部件生

5、成器出来的物品流向最远的笼车方向,从桔红色的部件生成器出来的货物流向部件消灭器的方向。实验结果和心得通过此次试验教会我们利用部件生成器、传送带(直线、分流、弯曲)、部件消灭器、作业员、笼车等来构筑模型的方法在以后的工作中得心应手。物流系统的优化,往往是在一定约束条件下,实现物流总费用最省、客户服务水平最好、社会经济效益最高的综合目标。但是,物流系统大多是离散的、复杂的大系统,包含多约束多因素的影响,难以达到最优状态,传统的运筹学方法无法对建立的模型进行有效求解,而仿真技术在解决这类问题时有其独到的优势和特点,因此许多专家学者对物流系统仿真领域进行了大量的研究,以求使物流系统的价值潜力得到最大的

6、发挥,提高企业的效率和利润。这次做的物流仿真实验虽然不是很成功,可是我花了很多时间来完成它,所以呢它对我以后做物流操作规划有很大的帮助。在此次物流仿真实验的过程中也让我学到了很多东西,所以呢从我内心来说我是很满意我的这次经历,同时也要谢谢老师安排这样的实验,为什么呢?因为在电脑操作中我不仅学到了书上没有的东西,也培养了我独立思考问题的能力。实验二:仓储型物流中心模型实验目的在此次试验中,将以仓储型物流中心的模型为例,学习包括在实验一使用过的设备以及自动立体仓库、装货中转站、卸货中转站、传送带(直角、合流)、机器人、托盘供给器等设备来建立模型的方法以及关于这些设备的设定方法。实验内容这次实验要建

7、立在实验一作成的模型的基础上增加具有自动立体仓库功能的出货传送线的模型。从3处投入口进来的4种商品沿传送带流动,在合流点合流的商品在装货中转站由机器人堆放在托盘上,托盘经入库口被送入自动立体仓库。存储在自动立体仓库中的托盘经出库口出库,在卸货中转站由作业员将商品卸下投放到分流线上去。实验步骤1.建立仓储型物流中心模型将画面设定为模型作成画面。点击设备栏的自动立体仓库按钮,使自动立体仓库表示出来。2.自动立体仓库的入库口(In Mode)的设置自动立体仓库的入库口(In Mode)是从外部将托盘送入自动立体仓库的入库路径。3.自动立体仓库的出库口(Out Mode)的设置自动立体仓库的出库口(O

8、ut Mode)是从自动立体仓库将托盘送出的出库路径。4.装货中转站的设置点击设备栏的装货中转站按钮,使装货中转站表示出来。5.装货中转站输入口的设置装货中转站上的托盘上装载一定数量的货物时,要使用装货中转站的输入口。6.进货线的做成点击设备栏的左合流传送带按钮,使左合流传送带表示出来。左合流传送带将从2个方向流过来的商品传送同一方向。7.卸货中转站的设置点击设备栏的卸货中转站按钮,使卸货中转站表示出来。8.卸货中转站输出口的设置从卸货中转站上的托盘卸货时,要使用卸货中转站输出口。9.出货线的做成点击设备栏的左转传送带按钮,使左转传送带表示出来10.模型合并通过复制粘贴别的文件中的模型,把复数

9、个模型组合成一个模型的操作称为模型合并。11.设备的组合使复数个物件组合后,可使其一起移动、旋转。保持其选择状态不变,右点击使弹出菜单表示出来,点击弹出菜单中的组合。12.组合的解除选择组合物件的弹出菜单中的解除组合,则组合被解除。然后请用Lesson22.emu的名字另保存。如果点击菜单栏中的|模拟|开始|或者时间栏中的开始按钮,则货物会被投放倒传送带上。机器人将传送过来的货物堆放在托盘上,托盘上每堆放5个物品后就被送入自动立体仓库里储存起来。13.自动立体仓库的出库下面要使在自动立体仓库里存储的托盘出库。使需出库的托盘处于选择状态,选择弹出菜单中的IOSection出库指示|IOSECTI

10、ON_*。开始模拟后,指定的托盘会从自动立体仓库的出库口(Out Mode)出库。作业员则从出库的托盘上拿取货物后搬送到左转传送带。实验结果和心得通过此次试验,我们在实验一的基础上学到了自动立体仓库功能的出货传送线模型,巩固了我们在实验一中所学的知识,并且加深了我们对自动立体仓库、装货中转站、卸货中转站、传送带(直角、合流)、机器人、托盘供给器等设备来建立模型的方法以及关于这些设备的设定方法。通过这个星期我们的物流仿真实验,我们不仅可以初步掌握物流系统仿真的基本理论,同时可以掌握实际仿真的步骤与方法。物流仿真是针对物流系统进行系统建模,并在电子计算机上编制相应应用程序,模拟实际物流系统运行状况

11、,并统计和分析模拟结果,用以指导实际物流系统的规划设计与运作管理评估对象系统:配送中心、仓库存储系统、拣货系统、运输系统等的整体能力的一种评价方法。仿真是对已经存在或尚未真实存在并且处于规划设计中的系统,构造系统模型并在计算机上进行仿真的复杂活动。在信息时代,仿真被赋予继理论推导和科学试验之后的第三种新型科研方法的地位,被广泛应用于各个行业的各个环节。尤其在物流这个新兴产业和新兴学科中,仿真成为不可或缺的支持技术之一。随着中国物流业的迅速发展,全国各地物流工程的设计和建设如火如荼。但是所有的物流工程都是合理必需的吗?配送中心的位置和容量设计是否合理?设备配置和场地规划是否恰当等等这些问题,在大

12、多数情况下只能凭经验和感觉来判断。有的往往是在工程建设后或设备配置后才发现问题,发生大量的修正费用。避免这种情况发生的最有效的方法就是应用物流仿真技术。物流仿真技术一个最大的优点是,不需实际安装设备,不需实际实施方案即可验证设备的导入效果和比较各种方案的优劣。在工程建设或设备配置的计划阶段发现和解决问题,因此,它对降低整个物流投资成本起到不可缺少的作用。实验三:复合型物流中心的模型实验目的在此次试验,将以复合型物流中心模型为例,学习如何用包括在实验二利用过的各种设备以及滑车铁轨、智能导向物、叉车等来建立模型的方法以及关于这些设备的设定方法。实验内容在此次试验我们将要做成由装货机器人将传送过来的

13、4种货物堆放到托盘后,装货托盘由滑车铁轨向3个自动立体仓库分送,并且将从自动立体仓库出库的托盘由滑车铁轨向出货场地搬送,再由叉车向出货口搬运的货物的模型。实验步骤1.建立模型启动RaLC-Pro,将在第三章做成的Lesson21.emu模型调出。2. 滑车铁轨的设置点击设备栏的滑车铁轨按钮,使滑车铁轨表示出来。3.滑车铁轨IO部分(INPUT,OUTPUT)的设置选择滑车铁轨的弹出菜单中的添加IO部件(InMode),使IO部分(INPUT,OUTPUT)的输入口表示出来。托盘通过此IO部分(InMode)滑到滑车铁轨上。4.智能导向物(滑车铁轨一侧)的设置下面要设置用来指定托盘目的地(滑车铁

14、轨的出口)的智能导向物。点击设备栏的智能导向物按钮,使智能导向物表示出来。将智能导向物设置在装货中转站和与装货中转站自动连接着的滑车铁轨的IO部分 (In Mode)之间。用弹出菜单的与下一个设备相连 使装货中转站向智能导向物,智能导向物向滑车铁轨的IO部分 (In Mode)连接上。将Rule IF属性里的Counter的左侧的确认框打上钩。点击Rule Then按钮,在有効的确认框 打上钩。在Counter左侧的的确认框上打上钩,将0改为1。在目的地左侧的确认框上打上钩,输入刚才记录下来的与左侧自动仓库的IO部分 (In Mode)连接着的滑车铁轨的输出口部分的名称(例为OUTPUT_ 0

15、0030)。点击智能导向物的属性窗口右侧的登录规则按钮。这时,规则编号的下拉条菜单文本变成了Rule1。这成为第1条运作规则。从登录规则 按钮上面的 规则编号 下拉条菜单中选择新建一项。点击Rule IF按钮,在Counter左侧的确认框上打上钩,将0改为1。点击Rule Then按钮,在有効的确认框上打上钩。在Counter左侧的确认框上打上钩,将1改为2。在目的地左侧的确认框上打上钩,然后输入与中间的自动立体仓库的IO部分 (In Mode)连接着的滑车铁轨的输出口部分的名称(例为OUTPUT_00032)。点击智能导向物的属性窗口画面右侧的登录规则按钮。这时,规则编号的下拉条菜单变为Ru

16、le2。这成为第2条运作规则。从登录规则 按钮上面的 规则编号 下拉条菜单中选择新建一项。点击Rule IF按钮,在Counter左侧的确认框上打上钩,将1改为2。点击Rule Then按钮,在有效的确认框上打上钩。在Counter左侧的确认框上打上钩,将2改为0。在目的地左侧的确认框上打上钩,然后输入与右侧自动立体仓库的IO部分 (In Mode)连接着的滑车铁轨的输出口部分的名称(例为OUTPUT_00034)。点击智能导向物的属性窗口画面右侧的登录规则按钮。这时,规则编号的下拉条菜单变为Rule3。这成为第3条运作规则。点击智能导向物的属性窗口画面下面的OK按键,关闭属性窗口。5.智能导

17、向物(自动立体仓库一侧)的设置点击设备栏的智能导向物按钮,使智能导向物表示出来。将智能导向物设置在左侧自动立体仓库的IO部分 (Out Mode)和与这个IO部分自动连接着的滑车铁轨的IO部分 (In Mode)之间。6.出货线的作成设备栏的左转传送带按钮 ,使左转传送带表示出来。打开左转传送带的属性窗口,点击尺寸按钮,将第1部分的长度改为2000,第2部分的长度改为2000, 高度改为300,宽度改为1200,然后点击OK 按钮。7.叉车的表示点击设备栏的作业员按钮,使作業員表示出来。将其设置于左转传送带的出口附近。打开作业员的属性窗口 ,点击尺寸按钮,然后将经路長改为5000。用Lesso

18、n31.emu的名称另保存起来。保存好后,点击菜单栏里的|模拟|开始|或者时间栏里的开始按钮,模型则会运转起来。货物被投放到传送带上,由机器人装好货的托盘通过滑车铁轨送往自动立体仓库储存起来。要将托盘出库时,选择已经入库的托盘的弹出菜单中的IOSection出库指示IOSECTION_*。托盘会被按照 IOSection出库指示|IOSECTION_* 的次序依次送出仓库。叉车则会将出库的托盘送往部件消灭器实验结果和心得通过此次试验我们学会了包括在实验二利用过的各种设备以及滑车铁轨、智能导向物、叉车等来建立模型的方法以及关于这些设备的设定方法,同时通过实验对复合型物流中心有一定的了解,加深知识

19、的实用性和学习的积极性。了解到仿真试验具有良好的可控性、无破坏性和可重夊性。仿真过程经济安全,上受气象条件和场地环境的限制。仿真的实时性,使实时系统的仿真应用成为可能,为仿真应用奠定了良好的基础。物流仿真软件的仿真过程,即是建立物流系统模型并通过模型在计算机上的运行来对模型进行检测和休整,使模型上断趋于完善的过程。目前物流仿真软件主要应用于企业内部生产物流仿真,企业仓储、运输和配送流程仿真,物流咨询仿真以及高校物流专业仿真研究学习等。 随着物流的发展,物流系统已经变得越来越夊杂,内部的关联性也随之变得越来越强。仿真就成了企业检测其物流系统及决策是否有效或高效的一个重要途径;此外, 企业设计一个

20、新的物流系统,或对已有的系统添加新技术、新装备,进行原有系统改造,都需要物流仿真技术和仿真软件的应用。在中国,物流仿真技术还是个比较新的概念,大多数企业对物流仿真技术应用状况及其意义了解并上多。物流仿真的技术是借助计算机技术、网络技术和数学手段,采用虚拟现实方法,对物流系统进行实际模仿的一项应用技术,它需要借助计算机仿真技术对现实物流系统进行系统建模与求解算法分析,通过仿真实验得到各种动态活动及其过程的瞬间仿效记录,进而研究物流系统的性能和输出效果。实验四:复合型物流中心的模型实验目的模型是在实验三做成的复合型物流中心的基础上,加入卸货和出货部分的2层物流中心。在此次试验中,将以复合型物流中心

21、模型为例,学习如何用包括在实验三利用过的各种设备以及轨道、卸货中转站、左曲传送带、智能作业员等建立模型的方法。实验内容本次实验要做成的模型概要是轨道上的平板车把从自动立体仓库第2层部分出库的托盘搬送到指定的出口并把作业员在卸货中转站卸货后的空托盘再运回仓库。卸下的货物在分流点根据其目的地被分流后作业员将其装入对应的笼车内。实验步骤1. 建立模型2.自动立体仓库2层部分的IO部件(IO部分)的设置在第二层也要建立自动立体仓库的出入库口。调出Lesson31.emu的模型。3.环境的设定下面要做成物流中心的第2层部分。为了使第1层的部分隐藏起来便于完成2层部分的制作,要对环境的设定进行设置。点击菜

22、单栏里的|环境|环境设置|。4.轨道的设置为了搬运托盘,要设置相关轨道。点击设备栏的直线轨道按钮,使直线轨道表示出来。为了做成逆时针环绕的轨道,选择线轨道的弹出菜单中的180度旋转一项。将属性栏的尺寸一项中的长度改为4000。5.自动立体仓库一侧的直线轨道的输入口和输出口的设置为了自动立体仓库和轨道相互能传送托盘,设置直线轨道的输入口和输出口。选择第1条直线轨道的弹出菜单中的添加输出部件,使输出口表示出来。6.卸货和再入库传送线模型下面要做成的模型概要是从自动立体仓库出库的托盘上的货物卸下后,再将空托盘送回自动仓库(再入库)。选择第5条直线轨道的弹出菜单中的添加输入部件,使输入口表示出来。7.

23、轨道管理器的设置(与直线轨道的连接)下面要设置轨道管理器,并进行相关设定使平板车空载时,自动提取自动立体仓库一侧的直线轨道输入口上的托盘。如果平板车上已有物品,那么不提取任何托盘。选择菜单栏的特殊设备中的 轨道管理器一项,使轨道管理器表示出来。将轨道管理器设置在轨道圈的正中央位置上。8.智能导向物的设置(自动立体仓库一侧) 下面将设置出库托盘的目的地(卸货再入库传送线上的直线轨道的输出口)。点击设备栏的智能导向物按钮,使智能导向物表示出来。将智能导向物设置在右侧自动立体仓库的IO部件(Out Mode)和直线轨道的输入口之间的位置上。分别用弹出菜单的与下一个设备相连一项将自动立体仓库的IO部件

24、(Out Mode)连上智能导向物,智能导向物连上直线轨道的输入口。9.智能导向物的设置(卸货再入库传送线一侧)下面要设置用来设定目的地(自动立体仓库一侧的直线轨道的输出口)的智能导向物使在卸货中转站货物被卸下来后,空托盘能够被再送回自动立体仓库。点击设备栏的智能导向物按钮,使智能导向物表示出来。将智能导向物设置在左侧的卸货再入库传送线上的直线轨道的输入口和左转传送带之间的位置上。分别用弹出菜单的与下一个设备相连一项使左转传送带连接上智能导向物,智能导向物连接上直线轨道的输入口。10.卸货货品的出货线的设置下面要做成从托盘上卸下来的货物的出库部分的模型。点击设备栏的作业员按钮,使作业员表示出来

25、。选择作业员的弹出菜单中的 顺时针旋转90度。11.智能作业员的设置下面要做成将在传送带上的货物分别装入到笼车的作业员。点击菜单栏的设备(D)中的智能作业员,使智能作业员表示出来。12.目的地的指定(部件生成器)下面要进行设定,使在右分流传送带的分流地点条码为barcode001的货物流向干线,barcode002004的货物流向支线。把相关的笼车名输入进作为各货物的生成源头的部件生成器之目的地一项后,条码为barcode002004的货物流向右分流传送带的支线并分别被装入右边的3个笼车。13.图层的设定使用工具栏里的L1按钮和L2按钮,可将1层和2层的模型分别显示出来。点击图层2 按钮,则设

26、定为图层2的物体会全部消失,只有第1层的部分显示在画面中。点击图层1 按钮,则设定为图层1的物体会全部消失,只有第2层的部分显示在画面中。实验结果和心得通过此次试验我们又学习到轨道、卸货中转站、左曲传送带、智能作业员等建立模型的方法,新知识的接触不仅使我们感触和好奇,而且使我们受益匪浅。相信在将来的工作和学习中可以从容镇定的面对。当然此次试验我们要感谢老师和同学的帮助。在老师的指导下我们做了一个星期的物流仿真实验。通过设计合理的物流调度方案,顺应物流智能化管理的需要,有助于学生通过实验掌握更高层级的运筹学优化知识,提高解决问题和分析问题的能力。优化系统设计将未来先进物流系统的发展和培养学生的兴

27、趣相结合,采用开放式设计思想,使学生在掌握物流运筹学优化评估和技能的同时,还进一步学习并掌握物流领域基本的业务知识,为培养高素质的人才提供了一个良好的平台。现代物流逐步从以运输和仓储管理为主要功能的传统物流阶段进入到以综合化、网络化、集成化、系统化为特征的现代物流阶段。物流概念的内涵极为丰富,不仅包括原材料,产成品等从生产者到消费者的实物流动过程,还包括伴随这一过程的信息流动。通过这次物流仿真实验,让我有个机会拥有一个展示自我的空间,也有成就感,在此过程中我增强了我的创作能力和动手能力,提高了物流运作操作水平。这次物流仿真,我学到了不少东西,而且学到了不少思考问题的方法。计算机会在以后的学习生

28、活中充当越来越重要的角色,相信我也会学习到更多关于计算机和网络的知识。这次收获确实不小!附录资料:不需要的可以自行删除 perl函数应用一、进程处理函数1、进程启动函数函数名eval调用语法eval(string)解说将string看作Perl语句执行。正确执行后,系统变量$为空串,如果有错误,$中为错误信息。例子$print = print (hello,worldn);eval ($print);结果输出hello, world函数名system调用语法system(list)解说list中第一个元素为程序名,其余为参数。system启动一个进程运行程序并等待其结束,程序结束后错误代码左移

29、八位成为返回值。例子proglist = (echo, hello,world!);system(proglist);结果输出hello, world!函数名fork调用语法procid = fork();解说创建程序的两个拷贝-父进程和子进程-同时运行。子进程返回零,父进程返回非零值,此值为子程序的进程ID号。例子$retval = fork();if ($retval = 0) # this is the child process exit; # this terminates the child process else # this is the parent process结果输出

30、无函数名pipe调用语法pipe (infile, outfile);解说与fork合用,给父进程和子进程提供通信的方式。送到outfile文件变量的信息可以通过infile文件变量读取。步骤:1、调用pipe2、用fork将程序分成父进程和子进程3、一个进程关掉infile,另一个关掉outfile例子pipe (INPUT, OUTPUT);$retval = fork();if ($retval != 0) # this is the parent process close (INPUT); print (Enter a line of input:n); $line = ; prin

31、t OUTPUT ($line); else # this is the child process close (OUTPUT); $line = ; print ($line); exit (0);结果输出$programEnter a line of input:Here is a test lineHere is a test line$函数名exec调用语法exec (list);解说与system类似,区别是启动新进程前结束当前程序。常与fork合用,当fork分成两个进程后,子进程用exec启动另一个程序。例子 结果输出函数名syscall调用语法syscall (list);解

32、说调用系统函数,list第一个元素是系统调用名,其余为参数。如果参数是数字,就转化成C的整型数(type int)。否则传递字符串的指针。详见UNIX的帮助或Perl文档。使用syscall必须包含文件syscall.pl,即:require (syscall.ph); 例子结果输出2、进程终止函数函数名Die调用语法die (message);解说终止程序并向STDERR输出错误信息。message可以为字符串或列表。如果最后一个参数不包含换行符,则程序文件名和行号也被输出。例子die (Cannot open input file);结果输出Cannot open input file a

33、t myprog line 6.函数名warn调用语法warn (message);解说与die类似,区别是不终止程序。例子warn(Danger! Danger!n);结果输出Danger! Danger!函数名exit调用语法exit (retcode);解说终止程序并指定返回值。例子exit(2);结果输出无函数名kill调用语法kill (signal, proclist);解说给一组进程发送信号。signal是发送的数字信号,9为杀掉进程。proclist是进程ID列表。详见kill的UNIX帮助。例子结果输出3、进程控制函数函数名sleep调用语法sleep (time);解说将程

34、序暂停一段时间。time是停止的秒数。返回值为实际停止的秒数。例子sleep (5);结果输出无函数名wait调用语法procid = wait();解说暂停程序执行,等待子进程终止。不需要参数,返回值为子进程ID,如果没有子进程,返回-1。例子结果输出函数名waitpid调用语法waitpid (procid, waitflag);解说暂停程序执行,等待特定的子进程终止。procid为等待的进程ID例子$procid = fork();if ($procid = 0) # this is the child process print (this line is printed firstn

35、); exit(0); else # this is the parent process waitpid ($procid, 0); print (this line is printed lastn);结果输出$ programthis line is printed firstthis line is printed last$4、其它控制函数函数名caller调用语法subinfo = caller();解说返回调用者的程序名和行号,用于Perl Debugger。返回值为三元素的列表:1、调用处的包名2、调用者文件名3、调用处的行号例子结果输出函数名chroot调用语法chroot

36、(dir);解说改变程序的根目录,详见chroot帮助。例子结果输出函数名local调用语法local($variable);解说在语句块(由大括号包围的语句集合)中定义局域变量,仅在此语句块中起作用,对其的改变不对块外同名变量造成影响。千万不要在循环中使用,否则每次循环都定义一个新的局域变量!例子结果输出函数名times调用语法timelist = times解说返回该程序及所有子进程消耗的工作时间。返回值为四个浮点数的列表:1、程序耗用的用户时间2、程序耗用的系统时间3、子进程耗用的用户时间4、子进程耗用的系统时间例子结果输出二、数学函数函数名sin调用语法retval = sin (va

37、lue);解说参数为弧度值。函数名cos调用语法retval = cos (value);解说参数为弧度值。函数名atan2调用语法retval = atan2 (value1, value2);解说运算并返回value1除以value2结果的arctan值,单位为弧度,范围在-PIPI。应用例:角度转化成弧度子程序。sub degrees_to_radians local ($degrees) = _; local ($radians);11: $radians = atan2(1,1) * $degrees / 45;函数名sqrt调用语法retval = sqrt (value);解说平

38、方根函数。value为非负数。函数名exp调用语法retval = exp (value);解说返回e的value次方。函数名log调用语法retval = log (value);解说以e为底的自然对数。函数名abs调用语法retval = abs (value);解说绝对值函数。(Perl 4中没有)函数名rand调用语法retval = rand (num);解说随机数函数,返回0和整数num之间的一个浮点数。函数名srand调用语法srand (value);解说初始化随机数生成器。保证每次调用rand真正随机。三、字符串处理函数函数名index调用语法position = index

39、 (string, substring, position);解说返回子串substring在字符串string中的位置,如果不存在则返回-1。参数position是可选项,表示匹配之前跳过的字符数,或者说从该位置开始匹配。函数名rindex调用语法position = rindex (string, substring, position);解说与index类似,区别是从右端匹配。函数名length调用语法num = length (string);解说返回字符串长度,或者说含有字符的数目。函数名pos调用语法offset = pos(string);解说返回最后一次模式匹配的位置。函数名s

40、ubstr调用语法substr (expr, skipchars, length)解说抽取字符串(或表达式生成的字符串)expr中的子串,跳过skipchars个字符,或者说从位置skipchars开始抽取子串(第一个字符位置为0),子串长度为length,此参数可忽略,意味着取剩下的全部字符。当此函数出现在等式左边时,expr必须为变量或数组元素,此时其中部分子串被等式右边的值替换。函数名study调用语法study (scalar);解说用一种内部格式提高变量的访问速度,同一时刻只对一个变量起作用。函数名lcuc调用语法retval = lc(string);retval = uc(str

41、ing);解说将字符串全部转换成小/大写字母。函数名lcfirstucfirst调用语法retval = lcfirst(string);retval = ucfirst(string);解说将第一个字母转换成小/大写。函数名quotameta调用语法newstring = quotemeta(oldstring);解说将非单词的字母前面加上反斜线()。语句 : $string = quotemeta($string);等效于:$string = s/(W)/$1/g;常用于模式匹配操作中,确保字符串中没有字符被看作匹配操作符。函数名join调用语法join (joinstr, list);解

42、说把字符串列表(数组)组合成一个长的字符串,在每两个列表元素间插入串joinstr。函数名sprintf调用语法sprintf (string, fields);解说与printf类似,区别是结果不输出到文件,而作为返回值赋给变量。例子$num = 26;$outstr = sprintf(%d = %x hexadecimal or %o octaln,$num, $num, $num);print ($outstr);结果输出26 = 1a hexadecimal or 32 octal四、标量转换函数函数名chop调用语法$lastchar = chop (var);解说var可为变量或

43、数组,当var为变量时,最后一个字符被删除并赋给$lastchar,当var为数组/列表时,所有元素的最后一个字符被删除,最后一个元素的最后一个字母赋给$lastchar。函数名chomp调用语法result = chomp(var);解说检查字符串或字符串列表中元素的最后一个字符是否为由系统变量$/定义的行分隔符,如果是就删除。返回值为实际删除的字符个数。函数名crypt调用语法result = crypt (original, salt);解说用DES算法加密字符串,original是将要加密的字符串,salt是两个字符的字符串,定义如何改变DES算法,以使更难解码。返回值为加密后的串。函

44、数名hex调用语法decnum = hex (hexnum);解说将十六进制数(字符串形式)转化为十进制数。函数名int调用语法intnum = int (floatnum);解说将浮点数舍去小数部分转化为整型数。函数名oct调用语法decnum = oct (octnum);解说将八进制数(字符串形式)或十六进制数(0 x.形式)转化为十进制数。函数名ord调用语法asciival = ord (char);解说返回单个字符的ASCII值,与PASCAL中同名函数类似。函数名chr调用语法$char = chr (asciival);解说返回ASCII值的相应字符,与PASCAL中同名函数类

45、似。函数名pack调用语法formatstr = pack(packformat, list);解说把一个列表或数组以在实际机器存贮格式或C等编程语言使用的格式转化(包装)到一个简单变量中。参数packformat包含一个或多个格式字符,列表中每个元素对应一个,各格式字符间可用空格或tab隔开,因为pack忽略空格。除了格式a、A和外,重复使用一种格式多次可在其后加个整数,如: $twoints = pack (i2, 103, 241);把同一格式应用于所有的元素则加个*号,如: $manyints = pack (i*, 14, 26, 11, 83);对于a和A而言,其后的整数表示要创建

46、的字符串长度,重复方法如下: $strings = pack (a6 x 2, test1, test2);格式的情况比较特殊,其后必须加个整数,该数表示字符串必须的长度,如果长度不够,则用空字符(null)补足,如: $output = pack (a 6 a, test, test2);pack函数最常见的用途是创建可与C程序交互的数据,例如C语言中字符串均以空字符(null)结尾,创建这样的数据可以这样做: $Cstring = pack (ax, $mystring);下表是一些格式字符与C中数据类型的等价关系:字符 等价C数据类型CcharddoubleffloatiintIunsi

47、gned int (or unsigned)llongLunsigned longsshortSunsigned short完整的格式字符见下表。 格式字符 描述a用空字符(null)补足的字符串A用空格补足的字符串b位串,低位在前B位串,高位在前c带符号字符(通常-128127)C无符号字符(通常8位)d双精度浮点数f单精度浮点数h十六进制数串,低位在前H十六进制数串,高位在前i带符号整数I无符号整数l带符号长整数L无符号长整数n网络序短整数N网络序长整数p字符串指针s带符号短整数S无符号短整数u转化成uuencode格式vVAX序短整数VVAX序长整数x一个空字节X回退一个字节以空字节(n

48、ull)填充函数名unpack调用语法list = unpack (packformat, formatstr);解说unpack与pack功能相反,将以机器格式存贮的值转化成Perl中值的列表。其格式字符与pack基本相同(即上表),不同的有:A格式将机器格式字符串转化为Perl字符串并去掉尾部所有空格或空字符;x为跳过一个字节;为跳过一些字节到指定的位置,如4为跳过4个字节。下面看一个和X合同的例子: $longrightint = unpack (* X4 L, $packstring);此语句将最后四个字节看作无符号长整数进行转化。下面看一个对uuencode文件解码的例子:1 : #

49、!/usr/local/bin/perl2 : 3 : open (CODEDFILE, /u/janedoe/codefile) |4 : die (Cant open input file);5 : open (OUTFILE, outfile) |6 : die (Cant open output file);7 : while ($line = ) 8 : $decoded = unpack(u, $line);9 : print OUTFILE ($decoded);10: 11: close (OUTFILE);12: close (CODEDFILE); 当将pack和unpac

50、k用于uuencode时,要记住,虽然它们与UNIX中的uuencode、uudecode工具算法相同,但并不提供首行和末行,如果想用uudecode对由pack的输出创建的文件进行解码,必须也把首行和末行输出(详见UNIX中uuencode帮助)。函数名vec调用语法retval = vec (vector, index, bits);解说顾名思义,vec即矢量(vector)函数,它把简单变量vector的值看作多块(维)数据,每块含一定数目的位,合起来即一个矢量数据。每次的调用访问其中一块数据,可以读取,也可以写入。参数index就象数组下标一样,提出访问哪一块,0为第一块,依次类推,要

51、注意的是访问次序是从右到左的,即第一块在最右边。参数bits指定每块中的位数,可以为1,2,4,8,16或32。例子1 : #!/usr/local/bin/perl2 : 3 : $vector = pack (B*, 11010011);4 : $val1 = vec ($vector, 0, 4);5 : $val2 = vec ($vector, 1, 4);6 : print (high-to-low order values: $val1 and $val2n);7 : $vector = pack (b*, 11010011);8 : $val1 = vec ($vector,

52、0, 4);9 : $val2 = vec ($vector, 1, 4);10: print (low-to-high order values: $val1 and $val2n); 结果high-to-low order values: 3 and 13low-to-high order values: 11 and 12函数名defined调用语法retval = defined (expr);解说判断一个变量、数组或数组的一个元素是否已经被赋值。expr为变量名、数组名或一个数组元素。如果已定义,返回真,否则返回假。函数名undef调用语法retval = undef (expr);

53、解说取消变量、数组或数组元素甚至子程序的定义,回收其空间。返回值始终为未定义值,此值与空串等效。五、数组和列表函数函数名grep调用语法foundlist = grep (pattern, searchlist);解说与同名的UNIX查找工具类似,grep函数在列表中抽取与指定模式匹配的元素,参数pattern为欲查找的模式,返回值是匹配元素的列表。例子list = (This, is, a, test);foundlist = grep(/tT/, list);结果foundlist = (This, test);函数名splice调用语法retval = splice (array, slipelements, length, newlist);解说拼接函数可以向列表(数组)中间插入元素、删除子列表或替换子列表。参数skipelements是拼接前跳过的元素数目,length是被替换的元素数,newlist是将要拼接进来的列表。当newlist的长度大于length时,后面的元素自动后移,反之则向前缩进。因此,当length=0时,就相当于向列表中插入元素,而形如语句splice (array, -1, 0, Hell

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论